【发布时间】:2015-02-10 12:27:12
【问题描述】:
我有一个包含数千行格式的文件
unwantedtext1
unwantedtext1
50779 1 52476 52475 52481 52485
50780 1 52485 52481 52480 52484
.....
.....
unwantedText2
50614 1.8837812e+001 7.0057003e+000 1.6900000e+002
52200 4.6960466e+001 -2.5497744e+000 1.4950614e+002
.....
.....
unwantedtext3
unwantedtext3
为了实现我的目标我已经尝试过
sed -n '/^[0-9]\{3\}/p' input.txt and also # to remove the line with non numeric in beginning
grep '^[0-9][0-9][0-9]' input.txt > output.txt
在下一步中,当字段 2 变为实数而不是整数时,我必须在文件开头添加文本 WantText1 和 WantText2。这样输出将是
wantedtext1
wantedtext1
50779 1 52476 52475 52481 52485
50780 1 52485 52481 52480 52484
.....
.....
wantedText2
50614 1.8837812e+001 7.0057003e+000 1.6900000e+002
52200 4.6960466e+001 -2.5497744e+000 1.4950614e+002
.....
.....
wantedtext3
wantedtext3
这些想要的文本可以直接回显,也可以从其他文本输入。数据是空格分隔的,而不是制表符分隔的。
使用 sed 或 awk 有什么建议吗?
【问题讨论】:
-
将不需要的替换为想要的有什么问题?
-
嗨哈马德,是的,你可以用 awk 做到这一点,但它一定会变得非常复杂且容易出错。此外,它不会比使用通用脚本语言(例如 python)解析所有内容快得多。你能解释一下为什么你不能这样做吗?
-
我已经尝试过,但我没有成功使用上面给出的命令,所以认为解析等语法可能有问题。你能给我一些建议吗?
-
@AvinashRaj 我必须插入想要的文本以适合我的格式要求和不需要的文本被删除,以便我的文件看起来符合软件的要求。