很多论坛上都有几十个帖子处理命令“sed”。 不幸的是,没有一个教程,没有一个帖子解决了我的基本问题,我希望我终于在这里找到解决方案:))
就是这样,我有几百行像这样:
INSERT [dbo].[TABLE_ONE] ([TABLE_ONE_ID], [TABLE_ONE_MNEMO], [TABLE_ONE_DESC], [AUTO_ANALYSIS], [SCOPE_LEVEL], [IN_ABV], [TABLE_ONE_ORDER], [REPORT_ETE]) VALUES (204, N'PERFO TEST', N'PERFO TEST', N'N', 1, 0, 999, N'70')
我只想删除字符串'dbo'和N前缀,所以我想替换:
204, N'PERFO TEST', N'PERFO TEST', N'N', 1, 0, 999, N'70'
by:
204, 'PERFO TEST', 'PERFO TEST', 'N', 1, 0, 999, '70'
对于'dbo'字符串,我找到了一个解决方案,但我不喜欢它,因为如果文本中还有另一个d,另一个b或另一个o,它们也将被删除。
sed -i 's/[dbo]//g' file
现在,如果我遵循这些说明,根据教程(http://www.theunixschool.com/2014/08/sed-examples-remove-delete-chars-from-line-file.html),它应该可以工作,但它不会:
sed -i 's/dbo//g' file
它只是......什么都不做!所以如果你有更好的解决方案,那就太棒了!
现在,对于N前缀,我只想删除昏迷后的所有字母N,就像上面的例子一样。如果您有解决方案,请不要犹豫,分享它,我尝试了不同语法的looooot,我只能删除文件中的所有N哈哈:)
感谢您的时间!
答案 0 :(得分:0)
试试这个sed 's/dbo//g' | sed 's/, N/, /g'
:
➜ ~ echo "INSERT [dbo].[TABLE_ONE] ([TABLE_ONE_ID], [TABLE_ONE_MNEMO], [TABLE_ONE_DESC], [AUTO_ANALYSIS], [SCOPE_LEVEL], [IN_ABV], [TABLE_ONE_ORDER], [REPORT_ETE]) VALUES (204, N'PERFO TEST', N'PERFO TEST', N'N', 1, 0, 999, N'70')" | sed 's/dbo//g' | sed 's/, N/, /g'