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

以前の回答からいくつかのコードを取得すると、次のコードを使用できます。

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 に答える
1

この質問の仕様を提供する前の質問からの情報を引き継ぐ必要があります。

これはあなたのために働くかもしれません:

awk '$3 == "A"' inputfile

*複数のファイルをcatまとめて編集したかのように処理するために、「inputfile」を glob に置き換えることができます。

複数のファイルをどのように処理するかについて明確な指示がなければ、それが最善の方法です。

于 2012-05-12T10:50:25.677 に答える
1

これはあなたのために働くかもしれません:

sed '/^ *chs.*A/!d' file
于 2012-05-12T11:03:15.337 に答える