私はこのようなデータのセットを持っています
col1 col2 col3 col4
ABC1 DEF1 GHI1 cond1
ABC2 DEF2 GHI2 cond1-cond2
ABC3 DEF3 GHI3 cond2/cond1
ABC4 DEF4 GHI4 cond2 cond1
ABC5 DEF5 GHI5 cond4/cond1
ABC6 DEF6 GHI6 cond1
ABC7 DEF7 GHI7 mcond1
ABC8 DEF8 GHI8 cond2
ABC9 DEF9 GHI9 cond1 at 50
ABCa DEFa GHIa con cond1
ABCb DEFb GHIb no. cond1
ABCc DEFc GHIc cond1 something
ABCc DEFc GHIc Mcond1
「col4」に従ってデータを分離するためのコマンドをいくつか記述して取得しようとしています。
文字列「cond1」の前後に「M」と「m」以外の文字列が含まれるファイル。私は現在、このコマンドを使用しています (明らかに、M と m を除外していません)。
awk 'BEGIN{IGNORECASE=1} $4 ~ /.cond1/ || $4 ~ /cond1./ ' /filepath.tab
また、データの 4 行目、9 行目、11 行目に「cond1」と他の文字列の間にスペースが含まれていることに注意してください。これをファイルに含めたいと思います。(コマンドの「.」にはスペースが含まれていますか?)
「col4」にのみ「cond1」を含むファイルを取得するコマンドを作成しました
awk 'BEGIN{IGNORECASE=1} $4 ~ /^cond1$/ ' /filepath.tab
ほとんどのデータで問題なく動作していますが、結果に次の 2 つのバグがあります。
ABC9 DEF9 GHI9 cond1 at 50 ABCc DEFc GHIc cond1 something
誰でもこれら2つのコマンドで私を助けてもらえますか? ありがとう。
重複を含まない 3 つのファイルの出力を探しています。例を次に示します: File1 (cond1 とのすべての組み合わせを含む):
col1 col2 col3 col4
ABC2 DEF2 GHI2 cond1-cond2
ABC3 DEF3 GHI3 cond2/cond1
ABC4 DEF4 GHI4 cond2 cond1
ABC5 DEF5 GHI5 cond4/cond1
ABC9 DEF9 GHI9 cond1 at 50
ABCa DEFa GHIa con cond1
ABCb DEFb GHIb no. cond1
ABCc DEFc GHIc cond1 something
File2 (cond1 のみを含む):
col1 col2 col3 col4
ABC1 DEF1 GHI1 cond1
ABC6 DEF6 GHI6 cond1
ファイル 3 (ファイル 1 とファイル 2 に含まれていないものをすべて含む):
col1 col2 col3 col4
ABC7 DEF7 GHI7 mcond1
ABC8 DEF8 GHI8 cond2
ABCc DEFc GHIc Mcond1
3つのファイルの合計行は元のファイルと同じであることに注意してください。これがかなり複雑に聞こえる場合は申し訳ありませんが、これは私が実際に持っている場合です。