我想从一个文件a.txt
得到一些具体的行,代码是这样的:抑制变量扩展在awk命令
cat a.txt | awk '{if($0 > 100) print}'
,它工作正常。
,但出于某种原因,我必须把上面的命令到这样一个变量:
cmd="cat a.txt | awk '{if($0 > 100) print}'"
和我有一个问题作出$0
,因为它会扩张到脚本的第一个参数,远离实际应该是什么。
我该如何解决它?
我想从一个文件a.txt
得到一些具体的行,代码是这样的:抑制变量扩展在awk命令
cat a.txt | awk '{if($0 > 100) print}'
,它工作正常。
,但出于某种原因,我必须把上面的命令到这样一个变量:
cmd="cat a.txt | awk '{if($0 > 100) print}'"
和我有一个问题作出$0
,因为它会扩张到脚本的第一个参数,远离实际应该是什么。
我该如何解决它?
只需在$
之前加上反斜杠直到它工作。
是的,它的工作原理,谢谢。 – Alcott 2013-05-05 14:09:38
与其添加反斜杠“直到它工作”,最好考虑为什么反斜杠是必需的。如果字符串包含多个特殊字符,那么耗尽添加的转义字符的排列将是乏味和脆弱的! – 2013-05-05 16:07:43
不!这绝对是一件错误的事情。脚本中的其他地方存在一个错误,这会导致您在此行中看到的行为,并在各个位置粘贴随机角色,以尝试让错误消息消失,这绝对会让您回头路过。 – 2013-05-05 23:55:34
而不是'cat a.txt | awk ...',只要'awk'$ 0> 100'a.txt' – 2013-05-05 16:05:48
为什么你想要一个字符串中的命令?正如你刚才所证明的那样,它让生活变得非常困难。 – 2013-05-05 16:09:28
您没有向我们展示脚本的某些部分存在错误。最有可能的是一个不匹配的单引号字符,因此awk命令的开头引号被视为该早期无法匹配的引号的结束引号。 – 2013-05-05 23:57:24