поставить кавычки в `псевдоним` это` CSH` - PullRequest
4 голосов
/ 27 июля 2011

Я хочу иметь псевдоним, который будет выполнять следующую команду:

zgrep 'failed at' $PWD/RESULTS/log_dir/* | cut -d"'" -f2,4 | tr "'" "\t"

Я пробовал разные способы поместить его в псевдоним, но ни один из них, похоже, не работает. например, некоторые из моих попыток:

alias get_failed "zgrep 'failed at' $PWD/RESULTS/log_dir/* | cut \"\'\" -f2,4 | tr \"\'\" \"\\t\""
alias get_failed "zgrep 'failed at' $PWD/RESULTS/log_dir/* | cut \"\'\" -f2,4 | tr \"\'\" \"\\t\"

и другие, как я могу сделать свой псевдоним?

1 Ответ

3 голосов
/ 27 июля 2011

Проблема вызвана функцией csh: вы не можете выйти ", если вы уже находитесь в строке с кавычками (то же самое для ').Это по-прежнему по умолчанию из-за проблем совместимости.Вы можете использовать более удобную оболочку или использовать конфигурацию backslash_quote:

set backslash_quote
alias get_failed "zgrep 'failed at' $PWD/RESULTS/log_dir/* | cut -d\"'\" -f 2,4 | tr \"'\" \"\\t\""

Кроме того, обратите внимание, что ваш вызов cut удаляет любую одинарную кавычку ('), поэтому ваш вызов tr мало что даст.(Отредактировал мой ответ несколько раз, чтобы убедиться, что он точно соответствует вашей исходной команде.)

...