我有一个有几个列的数据文件,在几个数据点之后有空白。我希望将第一列转换为多行(将空格后的列转换为行)。
例如,数据文件A.dat
2 1
11 1
15 2
24 2
3 1
12 1
16 2
25 2
4 1
13 1
17 2
26 2 使用以下命令,我能够将第一列转换为行
awk '{print $1}' A.dat | awk 'BEGIN { ORS = " " } { print }'这是上面命令的输出。
2 11 15 24 3 12 16 25 4 13 17 26需求
我想要这样的输出
this is row: 2 11 15 24
this is row: 3 12 16 25
this is row: 4 13 17 26是否可以使用awk或任何其他方式将列转换为前面带有"this Is row“的行。我对其他方法知之甚少。
发布于 2022-01-26 10:30:44
这可能就是你想要做的:
awk '
NF { row = row " " $1; next }
row != "" { print "this is row:" row; row="" }
END { if (row != "") print "this is row:" row }
' A.dat这假定空行完成行,而非空白行启动新行。
或者,使用sed
sed -e 's/[[:blank:]]*\([^[:blank:]]*\).*/\1/' \
-e '/./{;H;$!d;}' \
-e 'x;/^$/d;y/\n/ /;s/^/this is row:/' \
A.dathttps://stackoverflow.com/questions/70861784
复制相似问题