gpt4 book ai didi

bash - sed:仅当包含在引号中时才替换文本中的字符串

转载 作者:行者123 更新时间:2023-11-29 09:12:40 25 4
gpt4 key购买 nike

仅当特定字符序列属于引号中包含的字符串时,我才需要使用 sed 替换文本中的字符序列。

例如以下文字:

This is a YouTube video referenced by the 'movies.YouTube_id' column.

应该这样转换:

This is a YouTube video referenced by the 'movies.you_tube_id' column.

即仅当子字符串是用单引号 (') 括起来的字符串的一部分时,才将子字符串“YouTube”替换为“you_tube”,而不管引号中的前导和/或尾随字符。

显然

sed -r "s/YouTube/you_tube/g"

不起作用,因为无论引号如何,它都将“YouTube”替换为“you_tube”。我可以使用哪个正则表达式来完成任务?

提前谢谢你。

最佳答案

使用 GNU sed:

sed -E "s/('[^']*)YouTube([^']*')/\1you_tube\2/g" file

输出:

This is a YouTube video referenced by the 'movies.you_tube_id' column.

关于bash - sed:仅当包含在引号中时才替换文本中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48772986/

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