标题就是我想要的。我试过了:
awk 'BEGIN {system("echo a\tb")}'
awk 'BEGIN {system("echo a b")}' # embedded tab
他们都输出了[空格] b'而不是' [tab] b'。
答案 0 :(得分:4)
两个命令都使用echo
和a
这两个参数调用b
;这两个参数用TAB分隔,但是,就像在任何常规shell中一样,命令看不到分隔参数的空间。
您必须做的是使用一个参数调用echo
:字符串"a<tab>b"
awk 'BEGIN {system("echo \"a\tb\"")}'
答案 1 :(得分:0)
你需要shell引用它:
awk 'BEGIN {system("echo \47a\tb\47")}'
答案 2 :(得分:0)
@pdg:请尝试关注:
awk -vs1="\"" 'BEGIN{system("echo " s1 "a\tb" s1)}'
其中s1是awk的变量,我们不需要在系统命令中使用转义序列。这里我们在s1变量中转义字符串(“),然后简单地在系统内打印所有变量(awk的函数)。