我想使用grep
来计算W
中file.txt
出现的次数,并将其另存为变量WATER_NUMBER
。然后将该数字附加到file.txt
的末尾。
在here之后,
我尝试了
#!/bin/bash -l
WATER_NUMBER="$(grep -c W file.txt)"
sed -i -e '$a\"${WATER_NUMBER}"' file.txt
但是我打印了"${WATER_NUMBER}"
,而不是数字。我可以问一下如何修改吗?
答案 0 :(得分:1)
命令
sed -i '$a\"${WATER_NUMBER}"' file.txt
只需在文件末尾添加行"${WATER_NUMBER}"
。你可以尝试
sed -i "$ a\$WATER_NUMBER" file.txt
,但这仍将添加行$WATER_NUMBER
。问题在于,sED脚本中未扩展变量WATER_NUMBER。为了将其值传递给sed,请将其放置在引号之外,像这样
sed -i '$ a\'$WATER_NUMBER file.txt
编辑:昨天我实际上写了答案,但并未真正考虑变量未扩展的原因。今天早上,我想知道为什么即使变量是双引号而不是单引号也是如此。原因实际上只是偶然的,因为append命令中的\
在变量中的$
前面,因此转义了它。为防止这种情况,您需要转义\
。另一方面,实际上a
与您要添加的行之间不需要反斜杠
sed -i "$ a $WATER_NUMBER" file.txt
会做。
答案 1 :(得分:1)
如何将数字保存到变量中?
WATER_NUMBER=42
如何将变量内容附加到文件?
echo $WATER_NUMBER >> file.txt