Linux文本处理
多行连接
1
2
3
4
5
6
7
8
> for e in `seq 1 7`; do echo $e; done
1
2
3
4
5
6
7
使用sed
正序连接
1
2
> for e in `seq 1 7`; do echo $e; done | sed -n '1h;1!H;1!g;$!d; s/\n/,/g; p'
1,2,3,4,5,6,7
或者
1
2
> for e in `seq 1 7`; do echo $e; done | sed ':a;N;$!ba;s/\n/,/g'
1,2,3,4,5,6,7
使用sed
逆序连接
1
2
> for e in `seq 1 7`; do echo $e; done | sed '1!G;h;$!d; s/\n/,/g'
7,6,5,4,3,2,1
使用tr
正序连接
1
2
> for e in `seq 1 7`; do echo $e; done | tr -s '\n' ',' | sed 's/,$//'
1,2,3,4,5,6,7
使用tr
逆序连接
1
2
> for e in `seq 1 7`; do echo $e; done | tr -s '\n' ',' | sed 's/,$//' | rev
7,6,5,4,3,2,1
使用awk
正序连接
1
2
> for e in `seq 1 7`; do echo $e; done | awk 'ORS=","' | sed 's/,$//'
1,2,3,4,5,6,7
使用awk
逆序连接
1
2
> for e in `seq 1 7`; do echo $e; done | awk 'ORS=","' | sed 's/,$//' | rev
7,6,5,4,3,2,1