我的文件看起来像这样:
315
717个
461 737
304个
440个
148 206 264 322 380 438 496
801个
495个
355个
249 989
768个
946
我想在单个列文件中打印所有这些列(一个长的第一列)。
如果我尝试
awk '{print $1}'> new_file;
awk '{print $2}' >> new_file
中间有空白区域。怎么解决这个问题?
答案 0 :(得分:4)
也许有点神秘:
awk '1' RS='[[:space:]]+' inputfile
它说“打印每条记录,将任何空格视为记录分隔符”。
答案 1 :(得分:3)
您可以使用以下内容:
awk '{ for (i=1; i<=NF; i++) print $i }' file
对于每一行,迭代列,并在新行中打印每列。
答案 2 :(得分:3)
为此,您不需要sed
:只需将空格转换为换行符
tr ' ' '\n' < file
tr
纯粹是一个过滤器,因此您必须将文件重定向到其中。
答案 3 :(得分: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