Regex 将包含括号的字符串替换为sed,并在括号中插入包含日期的子字符串

Regex 将包含括号的字符串替换为sed,并在括号中插入包含日期的子字符串,regex,bash,sed,Regex,Bash,Sed,我想用“sed”替换包含括号的字符串,并将包含的字符串的一部分放入括号中 输入 截止日期('04/10/12','DD/MM/RR') 输出 '04/10/12' 可能吗?怎么做 输入中可能存在多个引用 我试过了 sed -e 's/to_date(//'' -e 's/,\'DD/MM/RR\')//g' 但是我想要一个替代表达式您可以使用这个sed: sed -E "s/to_date\(('[^']+')[^)]*\)/\1/g" <<< "to_date('04/10

我想用“sed”替换包含括号的字符串,并将包含的字符串的一部分放入括号中

输入

截止日期('04/10/12','DD/MM/RR')

输出

'04/10/12'

可能吗?怎么做

输入中可能存在多个引用

我试过了

sed -e 's/to_date(//'' -e 's/,\'DD/MM/RR\')//g'

但是我想要一个替代表达式

您可以使用这个
sed

sed -E "s/to_date\(('[^']+')[^)]*\)/\1/g" <<< "to_date('04/10/12','DD/MM/RR')"

'04/10/12'

sed-E“s/to\u date\(“[^']+”)[^]*\)/\1/g”您也可以使用此sed

sed -E "s/[^']*('[^']*').*/\1/" <<< "to_date('04/10/12','DD/MM/RR')"

sed-E“s/[^']*(“[^']*”)./\1/“是的,我尝试了-E/to\u date(//'-E's/,\'DD/MM/RR\')//g',但我想要一个替代表达式是的,它也很好用。是否可以在sed命令中混合使用-E和-E选项?我已经试过了,但我有一个奇怪的错误消息:“没有这样的文件或目录”是的,这是可能的。请给出一个例子,说明你从哪一行得到这个错误消息。下面是一个例子:sed-E“s/[^']*('[^']*)./\1/“-E's/12/13/”这样使用它:sed-E-E“s/[^']*('[^']*)./\1/“-E's/12/13/”好的,谢谢。我现在明白了“-E”的意思。anubhava的答案更好,因为它不会删除同一行中“截止日期”前后的现有字符串。