我的文件如下所示:
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
中间有空格。如何解决这个问题?
我的文件如下所示:
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
中间有空格。如何解决这个问题?
也许有点神秘:
awk '1' RS='[[:space:]]+' inputfile
它说“打印每条记录,将任何空格视为记录分隔符”。
你可以简单地使用类似的东西:
awk '{ for (i=1; i<=NF; i++) print $i }' file
对于每一行,遍历列,并在新行中打印每一列。
你不需要这么多sed
:只需将空格转换为换行符
tr ' ' '\n' < file
tr
纯粹是一个过滤器,因此您必须将文件重定向到其中。
一个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