我有一個文件,說輸入,包含類似下面的模式:的grep,打印匹配和不匹配的
quantum_mech_.*
astrophysics_.*
geology_.*
economy_*
我還有一個文件,說主題,它看起來像:
quantum_mech_[101]
astrophysics_[102]
geology_[203]
quantum_mech_[007]
geology_[205]
我想grep從輸入文件的每一行,搜索文件「主題」,只輸出第一個匹配,並打印「不匹配」,如果該行在主題文件根本找不到。所以,我期待像輸出:
quantum_mech_[101]
astrophysics_[102]
geology_[203]
Not Matched
我知道這是很老的問題,但沒有方法似乎是爲我工作正常。我嘗試了下面的代碼幾個變化:
script.csh:
cat $1 | while read line
do grep $line ./subject | head -1 >> output
set VAR=$?
if ($VAR==0) then
echo "Not Matched\n" >> output
endif
done
運行方式:
script.csh input
任何幫助/使用SED/grep的/ csh的指針將是巨大的。
感謝和問候,
你在用什麼外殼? 'csh'?您的while循環的'csh'語法錯誤。 – dogbane
是的,我正在使用csh,其中我不是專家:( 請問你能改正這段代碼嗎? 謝謝 –
不要使用csh來編寫腳本Google「csh why not」。 –