AIXsh,如何在字符串中用双引号对表达式进行grep



我需要在日志中找到所有包含服务器名称的行。所以我在我的脚本中这样做:

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

相关内容

  • 没有找到相关文章

最新更新