如何合并两个Shell脚本:移除文件首字段并为每行加额外字段
合并两个Shell脚本为单个脚本的解决方案
你可以通过**管道(Pipe)**将两个操作直接串联,完全省去中间文件File2.txt,写成单个脚本。这样既简化流程,又避免了临时文件的创建和清理。
合并后的完整脚本
#!/bin/bash # 直接处理File1.txt,跳过中间文件 cut -d' ' -f2- File1.txt | while read -r line; do echo "$RANDOM $line" done > File3.txt
脚本说明
cut -d' ' -f2- File1.txt:读取File1.txt,以空格为分隔符,提取从第2个字段开始的所有内容,直接输出到管道。- 管道
|:将前一步的输出作为后一步while read的输入,无需写入中间文件。 while read -r line:逐行读取管道传来的内容,-r参数避免转义字符被意外解析。echo "$RANDOM $line":为每行添加随机数(对应原脚本的$RANDOM),最后将所有结果一次性写入File3.txt(用>代替>>避免重复追加)。
输入输出示例
输入文件 File1.txt
Date Field2 Field3 20111 aaaa bbbb 33111 bbbb vvvv 44444 cccc gggg
输出文件 File3.txt(随机数会变化)
12345 Field2 Field3 67890 aaaa bbbb 13579 bbbb vvvv 24680 cccc gggg
内容的提问来源于stack exchange,提问作者chamara
相关产品推荐
相关产品推荐

