C shell 脚本:如何比较两个字符串?

C shell 脚本:如何比较两个字符串?

我是 C shell 用户。

我有两个文件。

文件1:

A
B
C
D
E

文件2:

A
C
B
D
E

我只想使用循环比较A-A, B-C, C-B, D-D, 。E-Efor

如果字符串匹配,则打印“match”。

输出如下:

A A -> match
B C -> " "
C-B -> " "
D-D -> match
E-E -> match

我该如何使用for循环?

答案1

下面是一个示例脚本,它使用该命令paste将两个文件整理到一个列表中:

A-A
B-C
...

然后,它将每个组合字符串解析为 2 个离散部分,并将它们存储在变量f1和中f2

#!/bin/csh

foreach i (`paste -d"-" file1 file2`)
  set f1=`echo $i | cut -d"-" -f1`
  set f2=`echo $i | cut -d"-" -f2`
  if ($f1 == $f2) then
    echo "$f1 $f2 -> match"
  else
    echo "$f1 $f2 -> "'" "'
  endif
end

其余代码是标准 C shell。

例子

$ ./cmd.csh
A A -> match
B C -> " "
C B -> " "
D D -> match
E E -> match

参考

相关内容