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

如何为文件每行添加首尾字符串后按指定分隔符拼接输出

文本处理实现方案

需求说明

现有input.txt文件共3行,内容依次为hello、cruel、world,需要实现以下处理逻辑:

  • 读取文件所有行
  • 给每行内容首尾添加预设字符:行首加单引号',行尾加单引号'
  • 用分隔符|把处理后的所有行拼接为单行输出
  • 预期输出:'hello'|'cruel'|'world'

可直接运行的实现代码

方式1:awk单命令实现(兼容性最好,适合绝大多数shell环境)

先定义配置参数,再执行处理逻辑:

# 配置项
BEGIN="'"
END="'"
DELIMITER="|"

# 处理逻辑
awk -v head="$BEGIN" -v tail="$END" -v sep="$DELIMITER" '
{
    if (NR > 1) printf sep
    printf "%s%s%s", head, $0, tail
}
END { print "" }
' input.txt

逻辑说明:逐行遍历文件内容,除第一行外每行前先输出分隔符,再输出包裹了首尾字符的当前行内容,所有内容拼接完成后补一个换行符,符合终端输出习惯。

方式2:sed+paste组合实现(命令更短,适合GNU工具链环境)

# 配置项
BEGIN="'"
END="'"
DELIMITER="|"

# 处理逻辑
sed -e "s/^/$BEGIN/" -e "s/$/$END/" input.txt | paste -sd "$DELIMITER" -

逻辑说明:先用sed给所有行批量添加首尾包裹字符,再通过paste命令的串行拼接功能,用指定分隔符把多行内容合并为单行。

运行结果

以上两种方式执行后,都会输出预期结果:

'hello'|'cruel'|'world'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 11:54:21