首页/系统/Linux 运维命令速查/场景:多行文本合并成一行
本包目录(613 条)
文件与目录76 条
文本处理77 条
网络命令82 条进程与作业69 条磁盘与文件系统51 条用户与权限44 条日志与排查40 条systemd 与服务42 条包管理34 条性能与监控48 条定时任务与计划50 条

场景:多行文本合并成一行

把每行一个的清单(IP、域名、参数)合并成逗号/空格分隔的单行:paste -sd 或 tr + sed 去尾。

Linux 运维命令速查系统更新于 2026-10-12
场景多行合并为单行分隔列表
组合paste -sd / tr / awk

常用写法

常用写法
paste -sd, hosts.txt                       # a,b,c
paste -sd' ' hosts.txt                     # 空格分隔
tr '\n' ',' < hosts.txt | sed 's/,$/\n/'   # tr 会给末尾也加逗号,需去除
awk 'NR>1{printf ","} {printf "%s", $0} END{print ""}' hosts.txt
要按每 N 行分组拼接:xargs -n5 或 awk 计数 %5==0 时输出换行。

易错点

  • paste -sd, 对最后一行不会补分隔符;tr '\n' ',' 会(末尾多逗号),两者输出不同要按需选
  • 命令行有长度上限(ARG_MAX):数万行清单合一行可能超限,直接管道处理不要塞进变量

数据来源与参考

  • man 1 paste(GNU coreutils 手册)
  • man 1 tr(GNU coreutils 手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌