繁体   English   中英

在 linux 中,查找并替换目录中所有出现的 L3 到 Employee 文件中的薪水

[英]In linux, find and replace the salary from L3 to Employee files in all occurrences within a directory

在 linux 中,查找并替换目录中所有出现的 L3 到 Employee 文件中的薪水

L3values.txt

Emp id | emp name | salary

1001 | Raghu | 12000

1002 | Geetha | 18000

Employeefile1.txt

Emp id | emp name | Age | Address| salary

1001 | Raghu | 25 | some address | 10000

1002 | Geetha | 30 | some address | 15000

Employeefile2.txt

Emp id | emp name | Age | Address| salary

1001 | Raghu | 25 | some address | 10000

1002 | Geetha | 30 | some address | 15000

1001 | Raghu | 25 | some address | 10000
$ gawk -F' \\| ' 'BEGIN {OFS=" | "} NR==FNR {id[$1]=$3; next} $0 { print $1,$2,$3,$4,id[$1] > FILENAME ".tmp" } ENDFILE {system("mv " FILENAME ".tmp " FILENAME " 2>/dev/null")}' values.txt file1.txt file2.txt

[编辑]

首先,编辑file1.txtfile2.txt的第一行。 改变这个:

 Emp id | emp name | Age | Address| salary

Emp id | emp name | Age | Address | salary

或者您可以运行以下命令:

$ gawk -F'\\|' 'BEGIN {OFS=" | "}{for(i=1;i<=NF;i++) {sub(/^ */,"",$(i)); sub(/ *$/,"",$(i))}print $0 > FILENAME ".tmp"} ENDFILE {system("mv " FILENAME ".tmp " FILENAME) }' values.txt file1.txt file2.txt

这是我得到的 output:

文件1.txt

Emp id | emp name | Age | Address | salary
1001 | Raghu | 25 | some address | 12000
1002 | Geetha | 30 | some address | 18000

文件2.txt

Emp id | emp name | Age | Address | salary
1001 | Raghu | 25 | some address | 12000
1002 | Geetha | 30 | some address | 18000
1001 | Raghu | 25 | some address | 12000

或者,如果您希望每行之间有空格,则可以使用它。

$ gawk -F' \\| ' 'BEGIN {OFS=" | "} NR==FNR {id[$1]=$3; next} $0 { print $1,$2,$3,$4,id[$1]"\n" > FILENAME ".tmp" } ENDFILE {system("mv " FILENAME ".tmp " FILENAME " 2>/dev/null")}' values.txt file1.txt file2.txt

文件1.txt

Emp id | emp name | Age | Address | salary

1001 | Raghu | 25 | some address | 12000

1002 | Geetha | 30 | some address | 18000

文件2.txt

Emp id | emp name | Age | Address | salary

1001 | Raghu | 25 | some address | 12000

1002 | Geetha | 30 | some address | 18000

1001 | Raghu | 25 | some address | 12000

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM