这是我上一个问题的延续。 deleting lines from text files based on the last character which are in another file using awk or sed
我正在尝试使用前面的示例获得以下输出?我是awk的新手。请给出建议。
csh 1 A 1 27.704 6.347
csh 2 A 1 28.832 5.553
csh 3 A 1 28.324 4.589
csh 6 A 1 28.378 4.899
答案 0 :(得分:1)
您需要继续提供上一个问题的任何信息,该信息提供了此问题的规范。
这可能对您有用:
awk '$3 == "A"' inputfile
你可以替换" inputfile"使用glob(可能是*
)来处理多个文件,就好像它们是cat
一样。
如果没有更清楚地表明您希望如何处理多个文件,那就是我能做的最好的事情。
答案 1 :(得分:1)
这可能对您有用:
sed '/^ *chs.*A/!d' file
答案 2 :(得分:1)
从以前的答案中获取一些代码,您可以使用以下代码:
while read word; do
if [[ $word =~ ^(....)(.)$ ]]; then
filename="yy/${BASH_REMATCH[1]}.txt"
letter=${BASH_REMATCH[2]}
[[ -f $filename ]] && sed -i.bak -n "/^ *csh.*$letter/p" $filename
fi
done < xx.txt