我想在给定文件上转换此文本:
87665
S
3243423
S
334243
N
...
这样的事情:
87665,S
3243423,S
334243,N
...
我一直在阅读一些similar questions,但它没有用......有没有办法在linux中使用单行命令执行此操作? 谢谢!
答案 0 :(得分:9)
使用sed
:
sed '$!N;s/\n/,/' filename
使用paste
:
paste -d, - - < filename
如果输入的行数为奇数, paste
会留下尾随,
。
答案 1 :(得分:5)
这样的事可能适合你:
$ 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
答案 2 :(得分:1)
只是为了好玩,一个纯粹的bash解决方案:
while IFS= read -r l1; do
read -r l2
printf '%s\n' "$l1${l2:+,$l2}"
done < file
如果有奇数行,则最后一行不会有逗号。