0

我对 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"

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

4

2 回答 2

0

你可以使用grep. 例如,

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

将在文件中列出与12345678912345671234567891234566或匹配的设备。12345678912345645c1.txt

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

grep -Ev '1234567891234567|1234567891234566|12345678912345645' c1.txt
于 2013-11-13T14:20:59.313 回答
0

像这样的东西?

while read device name; do
    case $device in
      1234567891234567 | 1234567891234566 | 12345678912345645)
        echo "XXX device" ;;
      *)
        echo "YYY device" ;;
    esac
done <c1.txt
于 2013-11-13T14:23:06.213 回答