嗨我有一个文件,其中列出了很多不同的值列表,我希望能够增加一个值的值,为每个值创建一堆文件。
即我的文件如下:
TEST.DAT
5 500 Mruh
6 100 Mrah
15 1.77 Mta
.
.
.
依旧...... 理想情况下,我想选择6的值(即100)并将其增加50,然后每增加一个新文件。 因此,最终产品应该是一个新文件,如下所示:
test_50.dat
5 500 Mruh
6 150 Mrah
15 1.77 Mta
我尝试过使用awk命令但遇到了问题。任何帮助都会很棒。
干杯!
答案 0 :(得分:1)
此awk
应该:
awk '$1==6 {sub($2,$2+50)}1' file >test_50.dat
cat test_50.dat
5 500 Mruh
6 150 Mrah
15 1.77 Mta
使用6
搜索行,然后将50
添加到列#2
我确实使用sub
来保留格式,就像你在这里看到的那样:
awk '$1==6 {$2+=50}1' file >test_50.dat
cat test_50.dat
5 500 Mruh
6 150 Mrah
15 1.77 Mta
根据值50
awk '$1==6 {sub($2,$2+v)} {print $0 > "test_"v".dat"}' v=50 file
cat test_50.dat
5 500 Mruh
6 150 Mrah
15 1.77 Mta