2

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

3 回答 3

1

您需要继承上一个问题中提供此问题规范的任何信息。

这可能对您有用:

awk '$3 == "A"' inputfile

您可以用一个 glob 替换“inputfile”,也许*,以便处理多个文件,就好像它们是cat一起编辑的。

在没有更清楚地表明您希望如何处理多个文件的情况下,这是我能做的最好的事情。

于 2012-05-12T10:50:25.677 回答
1

这可能对您有用:

sed '/^ *chs.*A/!d' file
于 2012-05-12T11:03:15.337 回答
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
于 2012-05-12T11:11:27.590 回答