[英]Regex to club consecutive lines?
我有這樣的文本文件
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
由於已經提供了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 '{printf $1(NR%2==0?RS:":")}' file
這是一個較短的awk
awk 'ORS=NR%2?":":RS' file
name1:age1
name2:age2
name3:age3
name4:age4
這是非常靈活的。 如果您想加入每3rd
行,只需更改為NR%3
...
這是另一個past
(這里最短的解決方案之一)
paste -sd":\n" file
name1:age1
name2:age2
name3:age3
name4:age4
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.