Chinaunix
标题:
怎样把多列数据转换为一行?
[打印本页]
作者:
smyjgj
时间:
2021-08-19 23:23
标题:
怎样把多列数据转换为一行?
各位,有个格式转换问题想请教大家。
原格式:
a1 abcd a2 cdef
a3 ghij a4 klmn
a1 aaaa a2 bbbb
a3 ccccc a4 ddddd
a5 eeee a6 ffffff
a1 yyyy a2 zzzzz
a3 wwww a4 xxxx
转换为:
a1 abcd a2 cdef a3 ghij a4 klmn
a1 aaaa a2 bbbb a3 ccccc a4 ddddd a5 eeee a6 ffffff
a1 yyyy a2 zzzzz a3 wwww a4 xxxx
作者:
wh7211
时间:
2021-11-18 17:44
回复
1#
smyjgj
cat 1
a1 abcd a2 cdef
a3 ghij a4 klmn
a1 aaaa a2 bbbb
a3 ccccc a4 ddddd
a5 eeee a6 ffffff
a1 yyyy a2 zzzzz
a3 wwww a4 xxxx
awk '/^$/{print a;a="";next}{a=a?a" "$0:$0}END{if(a){print a}}' 1
a1 abcd a2 cdef a3 ghij a4 klmn
a1 aaaa a2 bbbb a3 ccccc a4 ddddd a5 eeee a6 ffffff
a1 yyyy a2 zzzzz a3 wwww a4 xxxx
复制代码
作者:
legs
时间:
2021-11-19 08:27
本帖最后由 legs 于 2021-11-19 14:15 编辑
perl -0pe's#(?<!^)\n(?!\z)# #mg'
复制代码
作者:
a5love3n
时间:
2021-12-22 10:05
awk 'BEGIN{RS="\n[ \t\n]*\n|^\n+"}{$1=$1}1' test.txt
a1 abcd a2 cdef a3 ghij a4 klmn
a1 aaaa a2 bbbb a3 ccccc a4 ddddd a5 eeee a6 ffffff
a1 yyyy a2 zzzzz a3 wwww a4 xxxx
复制代码
作者:
smyjgj
时间:
2021-12-29 16:02
感谢楼上的,除了perl这个我没有还原结果外,其他都是可行的,再次感谢。
作者:
a5love3n
时间:
2022-04-19 10:28
试试sed用法
sed -n '/a1/x;/a1/!H;s/\n/ /g;${x;s/\n/ /g};/a1/p' test.txt
复制代码
效果
a1 abcd a2 cdef a3 ghij a4 klmn
a1 aaaa a2 bbbb a3 ccccc a4 ddddd a5 eeee a6 ffffff
a1 yyyy a2 zzzzz a3 wwww a4 xxxx
复制代码
作者:
ll251
时间:
2022-07-01 11:09
本帖最后由 ll251 于 2022-07-01 11:12 编辑
awk -v RS='\n\n' '{gsub("\n"," ",$0);print}' 1
sed -r ':a;N;/[a-z]$/{s/\n/ /;ta};P;d' 1
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2