使用csh脚本:
#!/bin/csh
foreach xmlfile ( "`cat ~/reportlist.txt`" )
printf $xmlfile"|"
head -c 1000 $xmlfile | awk -F'[="]' '{print $15,"|",$21}'
end
逐行读取文本文件并导航到每个文件,并使用awk从每个文件打印所需的变量。
我需要在bash脚本中执行相同的操作。我是bash的新手。我怎么能用bash做到这一点?
答案 0 :(得分:2)
更正确的方法(参见Bash FAQ 001)是
while IFS= read -r xmlfile; do
printf '%s' "$xmlfile"
head -c 1000 "$xmlfile" | awk -F'[="]' '{print $15,"|",$21}'
done < ~/reportlist.txt
使用awk
以这种方式解析XML是脆弱的,不推荐使用。但是,如果没有看到有问题的XML,我就不能推荐更好的解决方案。
答案 1 :(得分:0)
这有效:
set +x
for xmlfile in `cat reportlist.txt`
do
printf $xmlfile"|"
head -c 1000 $xmlfile | awk -F'[="]' '{print $15,"|",$21}'
done