无表头情况下如何重排.txt文件列、修改值、删列并重命名?
无需命名列即可完成指定文本处理的方案
完全可以不命名列,直接通过列索引(即第n列的数字编号)来完成所有要求的操作,下面是具体实现方法:
用awk命令一次性完成所有处理
awk命令天生支持按列索引操作分隔符文本,不需要给列命名,直接用$1、$2这类变量指代对应列。执行以下命令即可完成所有要求:
awk -F';' '{ # 处理第4列的"1.00"改为"1" if ($4 == "1.00") $4 = "1" # 按指定顺序输出列,自动丢弃第7-14列(因为未提及输出) print $1 ";" $3 ";" $4 ";" $2 ";" $5 ";" $6 }' IExport.txt > KExport.txt
命令说明
-F';':指定文本的分隔符为分号$n:直接指代第n列,无需提前命名- 处理第4列的逻辑:判断第4列是否为"1.00",是则替换为"1",否则保持原内容
- 输出时仅指定需要的列顺序(原列1、3、4、2、5、6),第7至14列因为未被包含在输出中,自动被删除
- 最终结果直接重定向到
KExport.txt文件
内容的提问来源于stack exchange,提问作者John919
相关产品推荐
相关产品推荐

