コマンドラインで問題なく機能するコマンドがありますが、エイリアスまたは関数に入れようとすると機能しません。
$ awk '{print $1}' /tmp/textfile
0
'0'は "textfile"の位置1にあるので、これは正しいです。
$ alias a="awk '{print $1}' /tmp/textfile"
$ a
1 0 136 94
これが「textfile」の行全体です。私は、うまくいくと想像できるあらゆる種類の引用符、括弧、およびバッククォートを試しました。さまざまな形式で同じ問題が発生する可能性があります。
何がわからないの?
次のように$
をエスケープする必要があります。
alias a="awk '{print \$1}' /tmp/textfile"
それ以外の場合、エイリアスは次のとおりです。
awk '{print }' /tmp/textfile
ファイル全体を印刷します...
エイリアスの代わりに関数を使用する
myfunc(){ awk '{print $1}' file; }