0
cat /path/to/file  | awk '{if ('/^TCF/' || '/^FSTL/' ) print $0;}' > /path/to/output.txt

やあ!これにより空の出力が生成されますが、「テキスト編集ドキュメント」では機能しますが、この「プレーン テキスト ドキュメント」では機能しません。それ以外は違いはありませんが、機能しないだけです。

cat /path/to/file  | awk '{if ($3=="TCF1" || $3=="FSTL7T2" || $3=="GLI3") print $0;}'

これは問題なく動作しますが、TCF1 だけでなく、TCF で始まるすべての名前が必要です。

助けてください!

4

3 に答える 3

1

それ以外の

cat /path/to/file  | awk '{if ('/^TCF/' || '/^FSTL/' ) print $0;}' > /path/to/output.txt

あなたが使用することができます

awk '/^TCF/ || /^FSTL/' /path/to/file > /path/to/output.txt

注記'/^TCF/'が間違っています/^TCF/。また、catファイルは へのパラメーターとして指定できるため、使用しないでくださいawk。最後に、print $0のデフォルト アクションなawkので、スキップできます。

于 2013-10-15T09:17:07.867 に答える
0

みんなありがとう!それを解決するのに役立ちますが、最終的には次のようになりました。

猫 /path/to/file1 /path/to/file2 | awk '{if ($3~/^TCF/ || $3~/^GLI/) print $0;}' > /path/to/test1.txt

しかし、次の方法を知っていますか。

  1. file1 の最初の行を test1.txt 出力に含めますか?
  2. そして、TCF と GLI が file1 または file2 から来た場合、含めることは可能ですか?
于 2013-10-15T23:05:02.947 に答える
0

これはうまくいくはずです:

awk '/^TCF/||/^FSTL/' /path/to/file  >output.txt

あなたの声明の問題は次のとおりです。

awk '{if ('/^TCF/' || '/^FSTL/' ) print $0;}'

次のようにする必要があります。

awk '{if ($0~/^TCF/ || $0~/^FSTL/ ) print $0;}'
于 2013-10-15T09:18:40.377 に答える