Linux
如何將 cut 的輸出通過管道傳輸到 foreach 命令?
我有我想要的 cut 命令,它可以抓取文件每一行中的第一個單詞。然後,我想將 cut 命令中的每個單詞放入 foreach 中。然後我想在 foreach 的主體中執行一個 grep 命令,以在另一個文件中 grep 查找該單詞。
像這樣的東西:
@array = (cut /tmp/10218.after -f1); foreach $word (@lines) { grep $word /tmp/10218.before; }
顯然@array 分配不起作用。我該如何解決這個問題?
我敢肯定,有很多方法我只是不知道它們是什麼,或者哪種方法最好或足夠好。
在 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)
to grep 告訴它保持安靜,然後
-q
您可以詢問$?
是否有匹配0
項1
。
你會想做更多這樣的事情:
for i in $(cat /tmp/10218.after) do grep $(echo ${i} | cut -f1) /tmp/10218.before done
如果您想在 grep 失敗時獲得更多花哨並輸出一些東西,您可以執行以下操作:
for i in $(cat /tmp/10218.after) do COUNT=grep -c $(echo ${i} | cut -f1) /tmp/10218.before if [[ ${COUNT} -eq 0 ]] then echo "${i}: Not Found" else echo "${i}: Found" fi done