私のファイルは次のようになります。
315
717
461 737
304
440
148 206 264 322 380 438 496
801
495
355
249 989
768
946
これらすべての列を 1 つの列ファイル (1 つの長い最初の列) に印刷したいと考えています。
私がしようとすると
awk '{print $1}'> new_file;
awk '{print $2}' >> new_file
間に空白があります。この問題を解決するにはどうすればよいですか?
私のファイルは次のようになります。
315
717
461 737
304
440
148 206 264 322 380 438 496
801
495
355
249 989
768
946
これらすべての列を 1 つの列ファイル (1 つの長い最初の列) に印刷したいと考えています。
私がしようとすると
awk '{print $1}'> new_file;
awk '{print $2}' >> new_file
間に空白があります。この問題を解決するにはどうすればよいですか?
おそらく少し不可解です:
awk '1' RS='[[:space:]]+' inputfile
「すべてのレコードを印刷し、空白をレコード区切りとして扱います」と書かれています。
これほど多くは必要ありませんsed。スペースを改行に変換するだけです
tr ' ' '\n' < file
trは純粋なフィルターであるため、ファイルをそこにリダイレクトする必要があります。
次のようなものを簡単に使用できます。
awk '{ for (i=1; i<=NF; i++) print $i }' file
行ごとに列を繰り返し、各列を新しい行に出力します。
perl解決策:
perl -pe 's/\s+(?=\S)/\n/g' infile
出力:
315
717
461
737
304
440
148
206
264
322
380
438
496
801
495
355
249
989
768
946