我有這樣正則表達式連續行嗎?
name1
age1
name2
age2
name3
age3
name4
age4
我想在這個格式的數據
name1:age1
name2:age2
name3:age3
name4:age4
任何人都可以給我建議任何正則表達式來達到這樣的效果的文本文件?我正在使用eclipse正則表達式,其工作方式與記事本++或編輯正則表達式相同。也可以通過sed在bash中完成linux嗎?
我有這樣正則表達式連續行嗎?
name1
age1
name2
age2
name3
age3
name4
age4
我想在這個格式的數據
name1:age1
name2:age2
name3:age3
name4:age4
任何人都可以給我建議任何正則表達式來達到這樣的效果的文本文件?我正在使用eclipse正則表達式,其工作方式與記事本++或編輯正則表達式相同。也可以通過sed在bash中完成linux嗎?
通過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
簡單高效,也許最後一個'g'不需要完美 – NeronLeVelu 2014-11-06 07:29:21
既然已經提供了SED解決方案是最好的,analternative使用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
查找內容(這裏是最短的解決方案之一):'(\ w +)\ N(\ W +)'。用'$ 1:$ 2'代替。 – 2014-11-06 07:20:24
[我如何使用vim,sed或其他類似工具連接大型文件(100萬行)中的連續行對?](http://stackoverflow.com/questions/8545538/how-do- i-join-pairs-of-a-line-in-large-file-1-million-lines-using) – Jotne 2014-11-06 07:53:19