答案1
你需要这样做:
perl -F, -lane 'print if $F[7] eq "NAB-ITSA-LINUX-7"' URT_Compare_20180715191103.csv
一旦你处理好下面提到的三件事,你应该没问题:
- “==”运算符用于测试其操作数的数学相等性。对于字符串比较,就像您的情况一样,
eq
就是您所需要的。 - 常量字符串需要加引号,OTW 它们被视为子例程。
- 由于 Perl 数组索引从零开始,因此
$F[8]
, 实际上指的是ninth
数组 的元素@F
。
基本假设是:
- 第8场是全场比较,不是局部比较。意思是,内容必须与您在此处显示的内容完全相同,不能有任何字符错误。
- 没有任何字段中有逗号,因为这会分裂中场,并且字段计数会发生变化。
- 这并不重要,只是您知道行结尾最好是 Unix 行结尾 (
LF = \n
)。如果不是,那么您应该首先将它们转换为它。
答案2
步骤1: 首先检查第8列有什么,
awk -F, '{print $8}' URT_Compare_20180715191103.csv
第2步: 然后 grep 所需的模式。
awk -F, '{print $8}' URT_Compare_20180715191103.csv | grep "WINDOWS2000-2"
步骤3: 如果您在步骤 2 中得到了想要的结果,请尝试以下代码。
awk -F, '$8 ~ "WINDOWS2000-2" ' URT_Compare_20180715191103.csv