いくつかの測定値を含むファイルのリストがあります。それらを1つのファイルにコンパイルしたいと思います。 2番目の列に数値データが含まれている場合(または列の各行にNaNが含まれていない場合)は、ファイル全体を新しい列のマスターファイル(バー)に貼り付ける必要があります。Awkは、1つの行要素のみの条件に基づいて列全体を出力します。
File1 File2 File3 Expected_Output Actual_Output
1 4 1 NaN 1 NaN 1 4 1 4
2 5 2 7 2 NaN 2 5 2 5
3 6 3 8 3 Nan 3 6 3 6
1 NaN
2 7
3 8
現在のところ、私のコードでは、2番目の列に1つでもNaNがあるファイルはすべて拒否されます。たぶん
for foo in *; do cat $foo | awk '{if ($2 ~ /[0-9]/) print $0}' >> bar ;done
あなたは一連のファイルを持っています。それらのうちの1つを指定すると、2番目のフィールドのいずれかが数字の場合、ファイル全体をマスターに貼り付ける必要があります。他のものを順番に貼り付けたいですか( 'cat file1 >> master; cat file2 >> master')か、もう一方を貼り付けますか?いくつかの[mcve]はその質問を明確にするでしょう。 – fedorqui
私はそれらをもう一方の隣に貼り付けることを願っています。私はそれを行う前に貼り付けを使用していましたが、私は入力として持っているファイルの数が大きすぎるので、測定せずにファイルを拒否する必要があります(ほとんどのファイルが実際に)。彼らは別々の問題です。わかりやすくするために、私は上記の質問の問題を分けるべきですか? – mannaroth
はい、私はそれが分かりやすくするために最善だと思います。複数のファイルを並べて貼り付ける場合は、[複数のファイルを並べて貼り付ける]を参照してください(http://stackoverflow.com/a/17075524/1983854)。 – fedorqui