gpt4 book ai didi

unix - 如何在unix中替换文件的字符串

转载 作者:行者123 更新时间:2023-12-02 04:16:49 25 4
gpt4 key购买 nike

经过一番谷歌搜索后,我发现我只需要 sed 命令。老实说,这个命令的标志似乎无法理解。我只想用另一个文件替换单引号字符串。 word1、word2 等等不是单引号/双引号。示例:

之前:foo.txt

word1 word2 word3 'This the text that needs replacement' word4 word5

之后:foo.txt

word1 word2 word3 'I have been replaced' word4 word5

请注意文本“This the text that needs replacement”不是一成不变的,其内容可能会有所不同。

最佳答案

这将用 ... something 替换单引号内的字符串。你的问题不够具体。

sed "s/'[^']*'/'something'/" file

因为搜索表达式中使用了单引号,所以我们将整个 sed 脚本放在双引号中。这意味着任何将要进行 shell 替换的内容(特别是反斜杠和美元符号,当然还有文字双引号)都需要在脚本表达式中进行转义。

正则表达式 '[^']*' 表示单引号,后跟一个不是单引号的字符,重复零次或多次,再跟另一个单引号。换句话说,任何不是单引号的东西都在单引号内。

此外,这将打印到标准输出。使用 sed -i 就地修改文件,或将输出重定向到您想要的位置。

关于unix - 如何在unix中替换文件的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33227348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com