所以我最终能够获得一个命令,能够从我想要的特定文件中获取和 grep 信息,然后我遇到了别名问题:
find ./ -type f -name filename.ext -exec grep 'information' {} + | sort | awk -v OFS='\n' '{print $5, $1, $2, $3 }'
从那里我发现我需要在查找后更改我的别名,然后我这样做了:
find ./ -type f -name filename.ext -exec grep 'information' {} + | sort | awk -v OFS='\n' '{print \$5, \$1, \$2, \$3 }'
所以现在它打印了,但我仍然想使用 OFS,但我不确定加载 OFS 的语法。提前致谢!
alias aliascommand="find ./ -type f -name filename.ext -exec grep 'information' {} + | sort | awk -v \OFS='\t' '{print \$5 \$1 \$2 \$3 }'"
我将上述内容的变体放入我的别名中。
答案1
如果你这样做:
alias foo="...'{print $5 $1 $2 $3 }'"
设置别名时,位置参数将被扩展。毕竟,它们位于双引号字符串内。你不希望这样,所以你必须用反斜杠转义它们。或者,您可以将整个别名文本放在单引号中,但由于您想在别名中使用单引号,这会变得相当困难。
\n
不过,在双引号内应该没问题。
无论如何,您可能应该使用函数来代替。这样您就不需要考虑命令周围的额外引用。
mycommand() {
find ./ -type f -name filename.ext -exec grep 'information' {} + |
sort |
awk -v OFS='\n' '{print $5, $1, $2, $3 }'
}