Asa*_*ser 5 linux text-editing sed
我有一个包含(许多)字符串的文件,我想替换它,所以我想使用一个简单的命令,如:
sed 's/string1/string2/g' file1 > out
Run Code Online (Sandbox Code Playgroud)
但是,有太多字符串无法手动重复。所以我列出了所有要替换的字符串,每个字符串都在一行中,并将其命名为文件 A。然后我列出了所有替换字符串,并将其命名为文件 B。
有没有办法做这样的事情:
sed 's/line i of file A/line i of file B/g' file1 > out
Run Code Online (Sandbox Code Playgroud)
对于文件 A 的每一行?
这基本上是您的第一个想法,但是将替换命令放入文件中,因此它们\xe2\x80\x99更易于管理:
\n\n\ntmpfile=/tmp/Asasuser.$$\nexec 3< fileA\nexec 4< fileB\n读取 \xe2\x80\x93r astring <&3\ndo\n 读取 \xe2\x80\x93r bstring <&4\n echo " s/$astring/$bstring/" >> "$tmpfile"\ndone\nexec 3<&- 4<&-\nsed \xe2\x80\x93f "$tmpfile" file1 > out\nrm \xe2\x80\x93f "$tmpfile"\n\n\n
这假设fileA和fileB具有相同的行数(并且该数字大于零)并且它们都没有任何未转义的/字符。
| 归档时间: |
|
| 查看次数: |
10571 次 |
| 最近记录: |