把多行文件合并成一行
原文件为:
# cat 1.txt
123
456
akdjf
adkflja
1
2
3
4
5
2
3
4
5
使用awk:
# awk 1 ORS=' ' 1.txt #相当于 awk 'BEGIN{ ORS=" "; } { print $0 }' 1.txt; awk 后面的1,是true的意思
123 456 akdjf adkflja
# awk '{printf "%s ", $0} END {printf "\n"}' 1.txt
123 456 akdjf adkflja
1
2
3
4
5
2
3
4
5
使用sed:
# sed ':a;N;$!ba;s/\n/ /g' 1.txt
123 456 akdjf adkflja
1
2
2
使用shell
# while read line; do printf "%s" "$line ";done < 1.txt
123 456 akdjf adkflja
1
2
2
使用tr
# tr '\n' ' ' < 1.txt
123 456 akdjf adkflja
如果中间不加空格的话
# tr -d '\n' < 1.txt
123456akdjfadkflja
1
2
3
4
5
6
2
3
4
5
6
使用xargs,会自动按空格分割:
# cat 1.txt |xargs
123 456 akdjf adkflja
1
2
2
上次更新: 2022/07/13, 16:00:22