1

次のパイプラインを書きました。

for i in `ls c*.txt | sort -V`; do echo $i; grep -v '#' ${i%???}_c_new.txt | grep -v 'seq-name' | cut -f 6 | grep -o '[0-9]*' | awk '{s+=$1} END {print s}'; done

ここで、13 列目の特定の grep に一致する行のみの 6 列目 (cut -f 6 以降のコード) を取得したいと思います。

これらは:

cut -f 13 | grep -o '^A$'

13列目を見て、grepが一致する場合は、この行を取得して残りのコードを作成します-6列目の数値の合計を数えます。

どうすればそんなことができるのですか?ありがとう。

4

1 に答える 1

1

次のように、カットされていない行を取得し、13 番目のフィールドでフィルター処理する grep コマンドを作成します。

 grep -E '(\S+\s+){12}A\s'

そして、それをパイプcut -f 6します。

于 2012-06-21T13:30:12.767 に答える