Regex 正则表达式到俱乐部连续行?
我有这样的文本文件Regex 正则表达式到俱乐部连续行?,regex,sed,Regex,Sed,我有这样的文本文件 name1 age1 name2 age2 name3 age3 name4 age4 我想要这种格式的数据 name1:age1 name2:age2 name3:age3 name4:age4 有人能给我推荐任何正则表达式来实现这样的结果吗?我使用的eclipse正则表达式与notepad++或edit+正则表达式的工作方式相同。也可以通过linux中bash中的sed完成吗?通过sed $ sed 'N;s/\n/:/' file name1:age1 name2:
name1
age1
name2
age2
name3
age3
name4
age4
我想要这种格式的数据
name1:age1
name2:age2
name3:age3
name4:age4
有人能给我推荐任何正则表达式来实现这样的结果吗?我使用的eclipse正则表达式与notepad++或edit+正则表达式的工作方式相同。也可以通过linux中bash中的sed完成吗?通过sed
$ sed 'N;s/\n/:/' file
name1:age1
name2:age2
name3:age3
name4:age4
N
将下一行追加到模式空间缓冲区
通过粘贴
$ paste -d':' - - < file
name1:age1
name2:age2
name3:age3
name4:age4
$paste-d':'-
由于已经提供了最佳的sed解决方案,因此可以替代awk:
>awk 'NR%2==0{print x":"$0}{x=$0}' your_file
name1:age1
name2:age2
name3:age3
name4:age4
>
这是一个
awk
awk '{printf "%s%s",$1,(NR%2==0?RS:":")}' file
name1:age1
name2:age2
name3:age3
name4:age4
awk 'ORS=NR%2?":":RS' file
name1:age1
name2:age2
name3:age3
name4:age4
它可以这样写,但可能无法在所有系统上工作:
awk '{printf $1(NR%2==0?RS:":")}' file
下面是一个较短的
awk
awk '{printf "%s%s",$1,(NR%2==0?RS:":")}' file
name1:age1
name2:age2
name3:age3
name4:age4
awk 'ORS=NR%2?":":RS' file
name1:age1
name2:age2
name3:age3
name4:age4
这是非常灵活的。如果你想加入每一个3rd
行,只需更改为NR%3
这里是另一个
过去的(这里是最短的解决方案之一)
查找内容:(\w+)\n(\w+)
。替换为$1:$2
。简单高效的可能重复,也许最后的g
不需要完美