逐个比较文件的内容

时间:2013-11-13 14:15:36

标签: shell

我是shell脚本的新手。所以请帮我解决这个问题。

我有一个包含

的文件c1.txt
List of devices attached 
0000000000000000    device
1234567891234567    device

我需要使用循环将上述内容与设备列表的子集进行比较。

例如:

v=c1.txt
while [$v!=0]
  if ($v==1234567891234567 or 1234567891234566 or 12345678912345645)
    echo "XXX device"
  else
    echo "YYY device"

我的语法错了,但我已经给出了我期望的逻辑流程。 请帮助我解决这个问题

2 个答案:

答案 0 :(得分:0)

您可以使用grep。例如,

grep -E '1234567891234567|1234567891234566|12345678912345645' c1.txt

会在文件1234567891234567中列出与123456789123456612345678912345645c1.txt匹配的设备。

如果您要列出输入中不匹配的设备,可以向-v提供grep选项:

grep -Ev '1234567891234567|1234567891234566|12345678912345645' c1.txt

答案 1 :(得分:0)

这样的东西?

while read device name; do
    case $device in
      1234567891234567 | 1234567891234566 | 12345678912345645)
        echo "XXX device" ;;
      *)
        echo "YYY device" ;;
    esac
done <c1.txt