如何操作文本文件中只有一列的组件

时间:2015-02-01 09:32:01

标签: shell unix

在一个文件夹中,我有一些包含3列的txt文件。我想知道是否可以在第三列的所有组件中附加一个字符(比如说L)。我设法在matlab中完成,但对于那些由少于3位数组成的数字,如81,它显示为L 81但是,L之后的空格对我来说并不合适。我想知道在UNIX / shell中是否有办法做到这一点?文件看起来像

0 1400000 165
1400000 1700000 336
1700000 2500000 216
2500000 3000000 228
3000000 3900000 366
3900000 4100000 108
4100000 4900000 250
4900000 5100000 81

我希望他们成为

0 1400000 L165
1400000 1700000 L336
1700000 2500000 L216
2500000 3000000 L228
3000000 3900000 L366
3900000 4100000 L108
4100000 4900000 L250
4900000 5100000 L81

2 个答案:

答案 0 :(得分:1)

您可以更简单地使用sed将第二个空格替换为空格,后跟L

sed 's/ / L/2' yourFile

答案 1 :(得分:0)

使用sed在第二个空格后添加L

$ sed -r 's/(.* .* )/\1L/' file 
0 1400000 L165
1400000 1700000 L336
1700000 2500000 L216
2500000 3000000 L228
3000000 3900000 L366
3900000 4100000 L108
4100000 4900000 L250
4900000 5100000 L81

将结果保存到同一文件使用-i

$ sed -i -r 's/(.* .* )/\1L/' file