【发布时间】:2018-06-18 02:25:57
【问题描述】:
假设我有一个如下所示的文件:
The
Way
Direct
5.0 0.0 3.0
2.0 0.0 0.0
0.0 0.0 1.0
0.0 0.0 2.0
3.0 4.0 6.0
0.000 1.000 2.000
1.0 2.0 3.0
4.0 5.0 6.0
3.0 2.0 0.0
我想将其更改为如下所示:
The
Way
Direct
5.0 0.0 3.0 U
2.0 0.0 0.0 U
0.0 0.0 1.0 U
0.0 0.0 2.0 U
3.0 4.0 6.0 U
0.000 1.000 2.000 A
1.0 2.0 3.0 A
4.0 5.0 6.0 A
3.0 2.0 0.0 A
因此,在“Direct”行之后,我将“U”附加到接下来的 x 行,然后在“0.000 1.000 2.000”行,我将“A”附加到该行及其后面的所有行。另一种看待它的方法是,我将“U”附加到第 4-8 行,并将“A”附加到第 9-12 行。
似乎 awk 可能是最好的方法。我知道如果我使用“sed -e 's/$/ U/',它会将 U 附加到所有行的末尾......但是有没有办法为特定行执行此操作,以及附加“A “?谢谢!
编辑:我还尝试使用 sed -n '4, 9p' 挑选出特定的行。但是,我不确定如何将其附加到添加字符串中,如: sed -n '4,8p' | sed -e 's/$/ U/' myfile.txt。但是,这会将 U 附加到所有行。
【问题讨论】:
-
请展示您的编码工作。
-
我试过了: sed -e 's/$/ U/' 这通常适用,但不适用于我的具体情况。我也试过: sed -n '4, 12p' -e 's/$/ U/' 看看这是否可行,但它没有。
标签: string bash awk sed append