0

以下のコマンドが機能しない理由を理解しようとしています (出力は空です)。

echo 'aaa\tbbb' | awk -F '\\t' '{print $2}'

出力は「bbb」になると思います。

興味深いことに、これは機能します (出力は「bbb」です):

echo 'aaa\tbbb' | awk -F 't' '{print $2}'

これも同様に機能します (出力は 'tbbb' です)。

echo 'aaa\tbbb' | awk -F '\\' '{print $2}'

エスケープされたバックスラッシュの後に t が続くのではなく、バックスラッシュの後にタブが続く\\\tように読み取られるように見えます。

このコマンドの正しい書き方はありますか?

4

1 に答える 1

2

echoバックスラッシュのエスケープを解釈するように指示する必要があります。試す:

$ echo -e 'aaa\tbbb' | awk -F '\t' '{print $2}'
bbb

man echo言うだろう:

   -e     enable interpretation of backslash escapes
于 2013-07-31T13:08:51.980 に答える