sed如何删除之间的文本和符号

时间:2015-01-20 12:27:07

标签: bash sed

我有这个字符串的sql文件:

(17, 14, '2015-01-20 10:38:40', 211, 'Just text\n\nFrom: Support  <support@domain.com>\n Send: 20 Jan 2015 year. 10:33\n To: Admin\n Theme: [TST #0000014] Just text \n\nJust text: Text\n Test text test text\n\nJust text:\n Text\n\n-- \n Test\n Text.\n Many text words 0.84.2', 0, 2);

我想删除符号\n\', 0, 2);之间的所有文字 我想得到这个结果:

(17, 14, '2015-01-20 10:38:40', 211, 'Just text', 0, 2);

我怎么能通过sed做到这一点?

我尝试使用此示例 - cat file | sed 's/<b>.*</b>//g'。我将<b>更改为\n\并将</b>更改为', 0, 2);但它不起作用,我在控制台中收到错误

提前致谢!

2 个答案:

答案 0 :(得分:3)

您可以尝试此命令

sed 's/\\n\\.*\('\'', 0, 2);\)/\1/g' FileName

输出

(17, 14, '2015-01-20 10:38:40', 211, 'Just text', 0, 2);

您必须使用'\''之类的单引号以及反斜杠\\

答案 1 :(得分:0)

如果你能找到它,你可以不用任何东西替换它。

因此,根据\n的含义以及您需要逃避的内容,您需要sed 's/\\n\\.*'//g'之类的内容。

显然,请注意这是真的你要在每一行上替换的内容。首先可能值得搜索目标\\n\\.*',以确保它不会意外地抓住意外的线路。