我有这样一个文件
文件名:hello.txt
{1:ABC}{2:BCD}{3:{108:20140619-2}}{4:
:97A::Hi//12345
:97A::Hi//12345
:93B::Hello//FAMT/00000,
:16S:FIN
-}{5:{CHK:BDG6789}}{S:{ABC:}{DEF:S}{WOM:ONHGRT}}
现在基本上我正在检查是否存在 $ 符号以及 :97A: 并且我使用下面的 if 语句。
if [ `grep -c '\$' hello.txt` -gt 0 ] && [ `grep -c ":97A:" hello.txt` -gt 1 ]
then
echo "condition satisfied"
else
echo "condition not satisfied"
fi
如果我执行此 im 得到满足条件的 echo 语句。但 id 应该是相反的:(因为我正在输入 AND 条件。请帮助解决这个问题。
最佳答案
我也不明白你在问什么,但从你的代码中我得出结论,你在寻找美元符号时遇到了麻烦。我想如果你使用反引号,你也需要转义反斜杠:
$ echo 'foo$bar' > dollar.txt
$ echo 'foo_bar' > no_dollar.txt
$ [ `grep -c '\$' dollar.txt` -gt 0 ] && echo 1
1
$ [ `grep -c '\$' no_dollar.txt` -gt 0 ] && echo 1
1
$ [ `grep -c '\\$' dollar.txt` -gt 0 ] && echo 1
1
$ [ `grep -c '\\$' no_dollar.txt` -gt 0 ] && echo 1
$ [ `grep -c '\\$' no_dollar.txt` -gt 0 ] || echo 0
0
或者,使用 $()
代替反引号
关于linux - Grep 在反引号内寻找美元符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24329068/