Одинарные кавычки завершаются одинарными кавычками; все другие промежуточные символы сохраняются точно, как, включая обратные косые черты. Таким образом нет никакого способа встроить одинарную кавычку между одинарными кавычками. (Но можно закончить одинарные кавычки, выйти из одинарной кавычки и запустить новый набор одинарных кавычек, как в 'Single quotes aren'\''t ever really embedded in single quotes.'
)
Предложение: Избегайте find+xargs когда grep -r pattern .
может рекурсивно grep на текущем каталоге.
Ниже команд имеют эквивалентное поведение:
grep -rns "add_action('save_post'," .
grep -rns 'add_action('\'save_post\', .
Последняя команда интерпретируется как:
'add_action('
-> add_action(
\'
-> '
save_post
-> save_post
\'
-> '
,
-> ,
Связывая эти части, grep
команда получает аргумент add_action('save_post',
.
awk 'NF==2 {system("/bin/echo " $0); next;}
{system("/bin/echo " $0 " | rev"); next;}' inputfile
Редактирование 1:
awk 'NF==2 {system("ssh user@remote kimera " $0); next;}
{system("kimera " $0); next;}' inputfile
Если kimera
ожидает отдельный аргумент затем, Вам нужно ... kimera \" $0 "\""
вместо этого.
Предположение, что могут только быть одно или два поля, и что все строки с двумя полями содержат метки времени, Вы могли выполнить в этом bash
:
while read string date; do
## If there are two fields, $string and $date, launch remote command
if [[ $date ]] ;
then ssh user@remote kimera "$string $date";
## If there is only one field, no date, launch the local command
else kimera $string; fi;
done < file
Если Вы можете иметь различные числа полей и должны на самом деле проверить какое-то время штамп в формат NN:NN:NN, используйте это вместо этого:
perl -ne 'chomp;
if(/\d+:\d+:/){system("ssh user@remote kimera $_" )}
else{system("kimera $_" )}
' file
/bin/echo
распечатать вawk
? – jordanm 07.07.2013, 08:23