You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Shell脚本将文本文件多行内容转为单行参数形式输出

多行“-n 内容”合并为单行的Shell实现方案

以下几种方法都可以实现将每行的“-n 内容”合并成单行输出:

方法1:利用tr替换换行符为空格

如果你的现有脚本已经能输出两行-n jon和-n match,只需将输出通过管道传递给tr命令,把换行符替换成空格即可:

# 假设现有脚本输出是两行,这里用示例模拟原输出
while read line; do echo "-n $line"; done < schemas.txt | tr '\n' ' '

如果介意末尾多余的空格,可以追加sed命令去除:

while read line; do echo "-n $line"; done < schemas.txt | tr '\n' ' ' | sed 's/ $//'

方法2:用paste命令合并行

paste的-s参数可以串行合并所有行,-d指定分隔符为空格,用法更简洁:

while read line; do echo "-n $line"; done < schemas.txt | paste -sd' '

方法3:循环内构建字符串,最后统一输出

直接在脚本中把所有内容存到变量里,最后一次性输出,避免多次echo产生换行:

result=""
while read -r line; do
  result="$result -n $line"
done < schemas.txt
# 输出时去除开头的空格(可选)
echo "${result# }"

这种方法更安全,尤其当schemas.txt中的行包含空格时,不会被错误拆分。

方法4:用printf直接生成单行内容

如果schemas.txt中每行都是单个单词(无空格),可以用printf直接拼接:

printf "-n %s " $(cat schemas.txt)
# 同样可以去除末尾空格
printf "-n %s " $(cat schemas.txt) | sed 's/ $//'

内容的提问来源于stack exchange,提问作者nick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 19:54:28