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被读作反斜杠后跟 tab而不是转义的反斜杠后跟 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 回答