Shell脚本实现单列数字文件拆分为两列的方法求助
解决方法
方法一:split + paste 组合操作
先将原文件拆分为两个各含500行的临时文件:
split -l500 $y temp_part
执行后会生成temp_partaa(存储1-500)和temp_partab(存储501-1000)两个文件。
再用paste命令把两个文件的对应行合并为两列:
paste temp_partaa temp_partab > formatted_output.txt
完成后可删除临时文件:
rm temp_partaa temp_partab
方法二:awk 直接处理(无需临时文件)
用awk一次性读取原文件,前500行存入数组,后500行与数组中对应位置的内容配对输出:
awk 'NR<=500{arr[NR]=$0} NR>500{print arr[NR-500], $0}' $y > formatted_output.txt
关于之前尝试的命令失效原因
split -l500仅完成文件拆分,本身不具备合并列的功能;column -t用于格式化同一行内的多列内容对齐,无法实现将不同行内容合并为一行两列的效果,因此不符合需求。
内容的提问来源于stack exchange,提问作者CaosWT
相关产品推荐
相关产品推荐

