现在有一个文件A,每行都记录了一个信息,每行的格式相同,我想修改其中的一些信息,要修改的内容在文件B里,请写一个shell程序
时间: 2023-05-31 22:05:26 浏览: 68
用shell修改文件内容,测试用例设计
可以使用awk命令来实现,具体步骤如下:
1. 读取文件B中需要修改的内容,并保存到一个数组中。
```
awk '{arr[NR]=$0}END{...}' B.txt
```
2. 逐行读取文件A,对需要修改的行进行替换,并输出到新的文件C中。
```
awk 'NR==FNR{arr[NR]=$0}NR>FNR{for(i in arr){if(i==FNR){gsub(old_string,new_string,$0)}}}1' B.txt A.txt > C.txt
```
其中,old_string和new_string分别为需要被替换的字符串和替换后的字符串。
完整的shell程序如下:
```shell
#!/bin/bash
# 读取文件B中需要修改的内容,并保存到一个数组中
awk '{arr[NR]=$0}END{
# 逐行读取文件A,对需要修改的行进行替换,并输出到新的文件C中
awk 'NR==FNR{arr[NR]=$0}NR>FNR{for(i in arr){if(i==FNR){gsub(old_string,new_string,$0)}}}1' B.txt A.txt > C.txt
# 完成提示
echo "修改完成,输出文件为C.txt"
```
阅读全文