【发布时间】:2018-05-10 07:17:14
【问题描述】:
我必须编辑一个大文件,其中每条记录的列不是由字符分隔而是具有固定长度。我想在第一列中搜索一个值,如果找到,请更改第三列的值。
我无法将文件从它所在的位置取出,所以我只能使用带有 awk、sed 和 java 5 的命令行。否则我会尝试其他解决方案。
bigfile.dat 结构:
Column1Col2Column3Column4Col5
例子:
id12345TEXTVALUE01SOMCODETEXT
id23456TEXTVALUE02SOMCODETEXT
id34567TEXTVALUE02SOMCODETEXT
id45678TEXTVALUE01SOMCODETEXT
id56789TEXTVALUE03SOMCODETEXT
我需要什么:为 id45678 设置 VALUE04
id12345TEXTVALUE01SOMCODETEXT
id23456TEXTVALUE02SOMCODETEXT
id34567TEXTVALUE02SOMCODETEXT
id45678TEXTVALUE04SOMCODETEXT
id56789TEXTVALUE03SOMCODETEXT
我不知道这是否可能。这是一些我认为可能可以与 awk 一起使用的伪代码:
if (match id = subtr(Column1))
print subtr(Column1+Col2) + "mychange" +substr(Column4+Col5)
else
print unchanged line
我不是要求为我做我的工作,我只是不知道我在用我拥有的工具浪费我的时间,或者我只是缺乏知识。
谢谢。
【问题讨论】: