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

如何编写bash脚本复制文件、交换前两列并追加到原文件底部

实现product-feed字段交换追加的bash脚本

原脚本问题说明

  • awk默认按空白字符分割字段,未适配CSV的逗号分隔规则,无法正确识别sku、productId两列
  • 复制操作后tmp为目录,直接作为awk输入源无法读取文件内容
  • 追加步骤中*.csv会被shell展开为多个文件名,不符合重定向语法要求
  • 未处理CSV表头,直接追加会导致表头重复且错位

可直接运行的完整脚本

#!/bin/bash
# 定义feed存储根目录
FEED_PATH="/var/ftp/JNM-01-020420/inbound/product-feed/en_US"
# 进入工作目录,失败直接退出避免异常操作
cd "${FEED_PATH}" || exit 1

# 提前创建临时目录避免不存在报错
mkdir -p ./tmp

# 遍历目录下所有CSV文件逐个处理
for feed_file in *.csv; do
    # 跳过非文件类型匹配结果
    [ -f "${feed_file}" ] || continue
    
    # 交换前两列,跳过原表头(不需要跳的话删除NR>1即可),输出到临时文件
    awk 'BEGIN{FS=OFS=","} NR>1 {tmp=$1;$1=$2;$2=tmp;print $0}' "${feed_file}" > ./tmp/swap_result.tmp
    
    # 将处理后的内容追加到原feed文件末尾
    cat ./tmp/swap_result.tmp >> "${feed_file}"
    
    # 清理临时文件
    rm -f ./tmp/swap_result.tmp
done

使用说明

  • 将上述内容保存为swap_feed_column.sh
  • 添加执行权限:chmod +x swap_feed_column.sh
  • 执行脚本:./swap_feed_column.sh

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:48:03