我有這樣指定一個Shell變量AWK
/home/rm/home-scripts/originals/audicerttest/incoming/TEST040511.txt
/home/rm/home-scripts/originals/audicerttest2/incoming/TEST040512.txt
/home/rm/home-scripts/originals/audicerttest3/incoming/TEST040513.txt
etc..I字符串要提取字符串「audicerttest /來電」,audicerttest2 /入」等成shell變量後來在使用它腳本。我嘗試過這樣的事情。
for file in `find ${ROOT}/* -type f | grep -v -f test.txt`
do
let count++
echo ${count}: ${file}
echo ${file} | eval $(awk '{split($0,a,"/"); print "abc=a[6]/a[7]"}' < /dev/null)
echo abc====$abc
done
但它沒有給出abc的輸出。
你方法的主要問題是無用的'eval'。 'eval'是邪惡的!不提無用的subhells使用。 –
我剛剛更新了我的答案......他正在使用效率低下的工具來完成任務,但是(我希望)他問的是爲什麼它不起作用,而不僅僅是要求其他解決方案。所以,不知道爲什麼downvote。 –
我是Shell的總新手。我同意有太多的錯誤。感謝您糾正這些問題。 – Ravi