我想轉換一個給定的文件這樣的文字:擊合併連續兩行的文件
87665
S
3243423
S
334243
N
...
到這樣的事情:
87665,S
3243423,S
334243,N
...
我一直在閱讀一些similar questions,但它沒有工作...有沒有辦法做到這一點在Linux中的單行命令? 謝謝!
我想轉換一個給定的文件這樣的文字:擊合併連續兩行的文件
87665
S
3243423
S
334243
N
...
到這樣的事情:
87665,S
3243423,S
334243,N
...
我一直在閱讀一些similar questions,但它沒有工作...有沒有辦法做到這一點在Linux中的單行命令? 謝謝!
使用sed
:
sed '$!N;s/\n/,/' filename
使用paste
:
paste -d, - - < filename
paste
將在輸入具有奇數行的情況下留下尾隨,
。
這樣的事情可能會爲你工作:
$ awk 'NR%2{a=$0;next}{print a","$0}' file
87665,S
3243423,S
334243,N
要與奇數行處理文件,你可以這樣做:
awk '{printf "%s%s", $0, NR%2?",":ORS}' file
你可能想用'ORS'而不是'「\ n」' –
我同意。如果用戶設置了不同的ORS,這可能會更好。 (我們也保存一個字符:)) – user000001
+1:@ user000001你可以做'awk'ORS =(NR%2)?「,」:RS'file' –
只是爲了好玩,純bash的解決方案:
while IFS= read -r l1; do
read -r l2
printf '%s\n' "$l1${l2:+,$l2}"
done < file
如果有一個奇數行,最後一行不會有後面的逗號。
是的,我沒有找到上面的答案,是重複的..謝謝 – Aitor
我記得它,因爲我已經回答了這個問題。最初,我以爲這是相同的問題鏈接,但後來沒有找到我的答案...:D – anishsane
:DI試圖找到答案一段時間,但我沒有找到它,標題「我怎麼能結合這些文件「..對我來說太普通了!嘿嘿...無論如何,我剛剛投了我的問題作爲重複 – Aitor