【发布时间】:2019-12-09 22:51:18
【问题描述】:
本题:https://unix.stackexchange.com/questions/20322/replace-string-with-contents-of-a-file-using-sed将file1中的固定字符串替换为文件2的内容。
我想反过来加上反转。
如果我有 file1:
A:B
B:B
C:
D:
E:A
和文件2:
D
E
:
那我想留下来
:
:
:
D:
E:
如果有人有任何指针,那就太好了。如果可以在文件 1 的特定列上完成此操作,同时保留文件 1 的其余部分,则可以加分。
即如果我有三列:
A:B A:B A:B
B:B B:B B:B
C: C: C:
D: D: D:
E:A E:A E:A
我最终会得到(目标第 2 列)
A:B : A:B
B:B : B:B
C: : C:
D: D: D:
E:A E: E:A
【问题讨论】:
-
我不明白。用什么代替什么?
A:B是否替换为:?为什么? -
@KamilCuk A 和 B 被替换为空,即
sed 's/A|B//g',因为这些字符在 file2 中不存在 -
characters?所以你想从file1中删除file2中的所有字符?你为什么不指定? “替换”部分在哪里?换行符被忽略?哦,您只想在一列上应用删除?所以你想从 file1 的指定列中删除 file2 中的所有字符? -
您应该在示例中包含正则表达式元字符,因为这可能会导致潜在的解决方案,特别是如果您包含
^,因为它需要与所有其他元字符不同地转义才能按字面意思处理。