多个sed替换-什么';这是不对的

多个sed替换-什么';这是不对的,sed,Sed,其思想是将这两种替换应用于模式空间 sed -re 's/\v\s+/\t/g' -re 's/[(]([^()]+)[)]\s*\t/\1\t/' movies.list 给了我一个语法错误 下面是一些测试数据(尽管它与第一个模式不匹配) & The Oriental Groove, Yacine "Els matins a TV3" (2004) & Vinícius, João Bosco Show da Virada (2011) Teleton 2009 (

其思想是将这两种替换应用于模式空间

sed -re 's/\v\s+/\t/g' -re 's/[(]([^()]+)[)]\s*\t/\1\t/' movies.list
给了我一个语法错误

下面是一些测试数据(尽管它与第一个模式不匹配)

& The Oriental Groove, Yacine   "Els matins a TV3" (2004)
& Vinícius, João Bosco  Show da Virada (2011)   Teleton 2009 (2009) Teleton 2012 (2012) "Eliana" (2009)
'77 Big Smoker Pig  "Pop ràpid" (2011)
'Ariffin, Syaiful   Desire (2014/III)
'Aruhane        Shaping Bamboo (1979)
'Atu'ake, Taipaleti When the Man Went South (2014)

只需在替换命令之间使用

sed -re 's/\v\s+/\t/g; s/[(]([^()]+)\s*\t/\1\t/' movies.list

第二个
-r
标志导致了问题。在参数处理过程中,显然不能使用该标志。请将其删除

sed -re 's/\v\s+/\t/g' -e 's/[(]([^()]+)[)]\s*\t/\1\t/' movies.list

删除第二个
-r
,看看这是否有帮助。它确实有帮助,我更喜欢这个解决方案。我在发布之前尝试过这个方法,但意外的结果是输出从我正在运行的shell脚本路由到屏幕,所以我选择了Etan的解决方案,但感谢您的回答。