我有一个使用高度自定义格式的 CSV 文件。在这里,每个数字代表 4 列中的每一列中的数据:
1 2 [3] 4
我需要限制sed
为仅搜索和修改出现在第四列中的数据。本质上,它必须忽略出现在第一次出现右方括号和空格之前的行上的所有数据,]
并且只修改出现在之后的数据。例如,file1.txt
可能包含以下内容:
penguin bird [lives in Antarctica] The penguin lives in cold places.
wolf dog [lives in Antarctica with penguins] The wolf likes to eat penguins.
替代品可能是sed 's/penguin/animal/g' file1.txt
. 运行脚本后,输出将如下所示:
penguin bird [lives in Antarctica] The animal lives in cold places.
wolf dog [lives in Antarctica with penguins] The wolf likes to eat animal.
在这种情况下,所有出现的penguin
都在第一次之前被忽略,]
并且只在出现在之后的行上发生更改。
- 额外的右括号可能会出现在该行的后面,但只有第一个应该被视为除法。
在查找和替换文本时,如何sed
忽略此自定义 CSV 格式的前三列?
我有 GNU sed 4.2.1 版。