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

How to manipulate components of just one column in a txt file

在一个文件夹中,我有一些包含 3 列的 txt 文件。我想知道是否可以将一个字符(比如 L)附加到第三列的所有组件。我设法在 matlab 中做到了,但是对于那些少于 3 位数字的数字,比如 81 ,它显示为 L 81 但是,L 之后的 space 对我来说是不需要的。我想知道在 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

使用sed在第二个space之后添加L

$ sed -r 's/(.* .* )/L/' 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/(.* .* )/L/' file 

您可以更简单地使用 sed,将第二个 space 替换为 space,然后是 L

sed 's/ / L/2' yourFile