如何将 cut 的输出通过管道传输到 foreach 命令?

Ram*_*amy 3 linux grep scripting pipe cut

我有我想要的 cut 命令,它可以抓取文件每一行中的第一个单词。然后我想将 cut 命令中的每个单词放入 foreach 中。然后我想在 foreach 的主体内执行一个 grep 命令,以便在另一个文件中对那个单词进行 grep。

像这样的东西:

@array = (cut /tmp/10218.after -f1); 
foreach $word (@lines) { 
   grep $word /tmp/10218.before;
} 
Run Code Online (Sandbox Code Playgroud)

显然@array 赋值不起作用。我该如何解决这个问题?

我确信有很多方法我只是不知道它们是什么,或者哪个是最好的或足够好的。

小智 6

在 bash 中

while read -r word
do
    grep -q "$word" file.before
    if [ $? -ne "0" ]
    then
        echo "$word not in file"
     fi
done < <(cut -f1 -d" " file.after)
Run Code Online (Sandbox Code Playgroud)

-q来的grep告诉它安静下来,然后你可以询问$?,看看是否有一个匹配0与否1