多个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的解决方案,但感谢您的回答。