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

Linux下如何将两个变量的值按行拼接为指定格式(分隔符为|)

实现方法分享

这需求挺典型的,我给你几个简单好用的Shell命令方案,都能轻松生成你要的输出:

方法一:用for循环(直观易懂)

这个方式逻辑最直白,适合刚接触Shell的朋友理解:

a="p|q"
b="x y z"
for item in $b; do
    echo "$a|$item"
done

它会逐个取出变量b里用空格分隔的每个元素,再和变量a的内容用|拼接后输出。

方法二:用awk一行搞定(简洁高效)

如果想写得更紧凑,用awk一行命令就能完成:

a="p|q"
b="x y z"
echo "$b" | awk -v prefix="$a" '{for(i=1;i<=NF;i++) print prefix"|"$i}'

这里用-v参数把变量a传递给awk作为prefix,然后awk会遍历输入的每个字段(NF代表总字段数),逐个拼接后打印。

方法三:用xargs快速处理

xargs也能轻松实现这个需求,代码更短:

a="p|q"
b="x y z"
echo "$b" | xargs -n1 echo "$a|"

xargs -n1会把b里的每个元素单独拆分出来,然后和$a|拼接后输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:38:01