1

私のファイルは次のようになります。

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

間に空白があります。この問題を解決するにはどうすればよいですか?

4

4 に答える 4

4

おそらく少し不可解です:

awk '1' RS='[[:space:]]+' inputfile

「すべてのレコードを印刷し、空白をレコード区切りとして扱います」と書かれています。

于 2012-04-22T19:55:20.297 に答える
3

これほど多くは必要ありませんsed。スペースを改行に変換するだけです

tr ' ' '\n' < file

trは純粋なフィルターであるため、ファイルをそこにリダイレクトする必要があります。

于 2012-04-22T21:02:35.543 に答える
3

次のようなものを簡単に使用できます。

awk '{ for (i=1; i<=NF; i++) print $i }' file

行ごとに列を繰り返し、各列を新しい行に出力します。

于 2012-04-22T17:52:54.807 に答える
1

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
于 2012-04-22T21:31:34.890 に答える