AWK-举例说明
我有一个文件1:AWK-举例说明,awk,system,Awk,System,我有一个文件1: 1 2 3 1 2 3 此命令打印: $ awk 'BEGIN{system("cat " 1)}' 1 2 3 我将文件名从“1”更改为“1” 我有一个文件一个: 1 2 3 1 2 3 现在,该命令不起作用: $ awk 'BEGIN{system("cat " one)}' | 为什么现在命令不起作用 感谢您的解释。在awk中,1的值为1,名为one的变量为空字符串。因此“cat”1是字符串cat 1,但是“cat”one是字符串cat。字符串“cat'
1
2
3
1
2
3
此命令打印:
$ awk 'BEGIN{system("cat " 1)}'
1
2
3
我将文件名从“1”更改为“1”
我有一个文件一个:
1
2
3
1
2
3
现在,该命令不起作用:
$ awk 'BEGIN{system("cat " one)}'
|
为什么现在命令不起作用
感谢您的解释。在awk中,
1
的值为1
,名为one
的变量为空字符串。因此“cat”1
是字符串cat 1
,但是“cat”one
是字符串cat
。字符串“cat'\'''one'\'''
是字符串cat'
,因此将空字符串作为第一个参数传递给cat 在awk中,1
的值为1
,名为one
的变量为空字符串。因此“cat”1
是字符串cat 1
,但是“cat”one
是字符串cat
。字符串“cat'\'''one'\'''
是字符串cat'
,因此将空字符串作为第一个参数传递给cat 在您的示例中,awk将1
解释为文字1,将one
解释为没有值的变量。这意味着system
正在尝试执行cat{empty}
或cat'
试试这个:
awk 'BEGIN{one = "one" ; system("cat " one)}'
或:
在您的示例中,awk将
1
解释为文字1,将1
解释为没有值的变量。这意味着system
正在尝试执行cat{empty}
或cat'
试试这个:
awk 'BEGIN{one = "one" ; system("cat " one)}'
或:
如果您的文件名是一个数字,您可以直接在system()中写入该数字,awk将在内部将其转换为字符串值。您甚至可以编写表达式来获得结果。例如:
系统(“cat”4-3)
也适用于您的“1”案例。要查看差异,您可以将文件命名为“1+1”,然后系统(“cat”1+1)
将无法工作,它将抱怨文件“2”不存在
对于“one”示例:system()中的“one”与字符串“one”不同,而是一个名为“one”的变量。在awk中,如果未分配变量,则其默认值为空字符串 如果您的文件名是一个数字,您可以直接在system()中写入该数字,awk将在内部将其转换为字符串值。您甚至可以编写表达式来获得结果。例如:
系统(“cat”4-3)
也适用于您的“1”案例。要查看差异,您可以将文件命名为“1+1”,然后系统(“cat”1+1)
将无法工作,它将抱怨文件“2”不存在
对于“one”示例:system()中的“one”与字符串“one”不同,而是一个名为“one”的变量。在awk中,如果未分配变量,则其默认值为空字符串 谢谢你的解释。谢谢你的解释。谢谢你的解释。谢谢你的解释。谢谢你的解释。谢谢你的解释。谢谢你的解释。