【shell脚本】如何将两列数据交叉合并在要求?

【要求】

合并前的内容:
192.168.55.101, 192.168.55.201
192.168.55.102, 192.168.55.202
192.168.55.103, 192.168.55.203
192.168.55.104, 192.168.55.204

合并后的内容:
192.168.55.101
192.168.55.201

192.168.55.102
192.168.55.202

192.168.55.103
192.168.55.203

192.168.55.104
192.168.55.204

【shell脚本实现方法】

shell脚本(文件:merge_ips.sh):

#!/bin/bash

# 检查输入参数是否正确
if [ $# -ne 1 ]; then
    echo "Usage: $0 "
    exit 1
fi

input_file="$1"

# 使用awk处理数据格式
awk -F',[[:space:]]*' \
'{
    # 输出每行的两个IP
    print $1
    print $2
    
    # 每处理完一行后添加空行(最后一行会被后续命令删除)
    print ""
}' "$input_file" | head -n -1  # 删除最后多余的空行

exit 0

原数据(文件:input.txt):

192.168.55.101, 192.168.55.201
192.168.55.102, 192.168.55.202
192.168.55.103, 192.168.55.203
192.168.55.104, 192.168.55.204

执行命令:

# 添加执行权限
chmod +x merge_ips.sh

# 运行脚本
  ./merge_ips.sh input.txt
原文链接:,转发请注明来源!