Кратки съвети

Тук може да намерите полезни съвети и примери за много ситуации.

 

1 2 3 4 5 6

Определяне на пълния път до директория в bash и cmd промпт

За да определите абсолютния път до текущата или която и да е относително адресирана директория, например по-горната на текущата, използвайте следните конструкции:

bash

parent_dir=`cd .. && pwd`


cmd

set current_dir=%CD%
cd ..
set parent_dir=%CD%
cd %current_dir%


Регулярен израз за изваждане на съдържанието на span елемент по id или class атрибут

Това е регулярен израз за изваждане на съдържанието на всички span елементи от даден HTML текст в променливата $data по id или class атрибут:

$regex = '/\<span\s*class=[\'"]?classname[\'"]?\s*>([^\<]+)\<\/span\>/imu';
preg_match_all($regex, $data, $matches, PREG_PATTERN_ORDER);
print_r($matches[1]);

$regex = '/\<span\s*id=[\'"]?spanid[\'"]?\s*>([^\<]+)\<\/span\>/imu';
preg_match_all($regex, $data, $matches, PREG_PATTERN_ORDER);
print_r($matches[1]);

 

Забрана за промяна на данните в таблица в Oracle (таблица само за четене)


Удобен начин за предотвратяване на промяна на данните (update, delete, insert) в дадена таблица е да се създаде тригер, който винаги генерира грешка:
 
create or replace no_dml
before insert or update or delete
on my_table
begin
    raise_application_error (-20000, 'my_table is read-only!');
end;

По този начин може да се определят и вида на операциите, които икаме да забраним. Например таблица, в която се вмъкват редове, без възможност за промяна на данните.

 


Изследване на ограниченията (constraints) на Oracle по дадено име


Когато се създава таблица в Oracle с наложени ограничения (constraints), например primary key, unique, foreign key, е добре да се именуват, за да може в последствие да се идентифицират по-лесно при грешки. Но какво става ако това не е направено? Получават се подобни грешки:
 
ORA-00001: unique constraint (MYUSER.SYS_C00009843) violated
 
В такъв случай, за да се идентифицират колоните, таблицата и типа на ограничението (constraint), пуснете следната заявка:
 
select cons.table_name, cons.constraint_name, cons.constraint_type,
    cols.table_name, cols.column_name, cols.position
from user_constraints cons 
    inner join user_cons_columns cols 
        on cons.owner = cols.owner and cons.constraint_name = cols.constraint_name 
where cons.constraint_name = 'SYS_C00009843'

 


Рекурсивно преименуване на всички файлове от едно разширение в друго с bash


Следния скрипт преименува всички файлове с разширение .jad в текущата директория и поддиректориите в разширение .java

for file in `find . -type f -name *.jad`
do
    mv $file `dirname $file`/`basename $file .jad`.java
done


Откриване на файлове, които не са притежание на даден потребител

Следната команда открива файловете в домашната директория на потребителя foo, които не са притежание на foo

find /home/foo ! -user foo

 


Игнориране на празните символи при svn diff от командния ред


За разлика от командата diff, svn diff на subversion няма толкова много опции за модифициране на резултата, като например игнориране на празните символи. За да се постигне такова поведение е нужно да се покаже на subversion да използва външна програма за генериране на diff посредством --diff-cmd:

svn diff --diff-cmd diff -u -w working/copy/file


1 2 3 4 5 6