从另一个文件中的文本文件中删除行

时间:2012-05-12 08:05:41

标签: sed awk

这是我上一个问题的延续。 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

3 个答案:

答案 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