我需要在日志中找到所有包含服务器名称的行。所以我在我的脚本中这样做:
grep $x ./input_log_files.csv >> test.txt
其中x包含服务器名称。
问题是,通过这种方式,我还捕获了包含较长名称中的服务器名称的行。需要明确的是,我们这里有一个AIXserver,还有一个名为VAIXserver的虚拟服务器。所以当我搜索第一个时,我也会得到另一个。在我的日志文件中,服务器名称用双引号括起来。我拼命想在服务器名上加上双引号。我还尝试过使用逗号,例如"AIXserver",但没有成功。
如何强制grep考虑双引号?我试着用引号,转义符。。。没有成功。
谢谢你的帮助。B²
grep -w $x ./input_log_files.csv >> test.txt
备选
perl -ne 'print if /b$xb/' ./input_log_files.csv >> test.txt
确保变量包含引号:
x='"sname"'
并引用它:
$ testval=$'snamenVsnamen"sname"n"Vsname"n"sname2"'
$ echo "$testval"
sname
Vsname
"sname"
"Vsname"
"sname2"
$ echo "$testval" | grep "$x"
"sname"
对于您的命令行:
grep "$x" ./input_log_files.csv >> test.txt