替换多个换行符&用sed添加分隔符?

时间:2018-04-23 00:22:26

标签: sed

我有一个.txt文件,格式如下:

Artist 1, Artist 2, Artist 3,
Venue name,
City, State,
xx/xx/xxxx








Artist 4,
Venue name,
City, State,
xx/xx/xxxx

每个部分的艺术家数量可变,每个条目之间有一堆新行。我想达到一个点,我可以将其导入到带有某种分隔符的电子表格中,这样我就可以将每个部分放在它自己的行中(其中每行有四列,属于四个字段 - 艺术家,地点,地点,日期。)

图我需要:

  1. 用某种分隔符替换,\n的所有实例
  2. 删除所有额外的换行符
  3. ...但似乎无法找到一种方法让这个工作与sed一起工作。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

您可以参考How can I replace a newline (\n) using sed? ,以获得一些帮助。这里的命令可以实现你想要的,我假设分隔符在这里 !

$ sed -e ':a;N;$!ba;s/,\n/!/g;s/\n//g' file
Artist 1, Artist 2, Artist 3!Venue name!City, State!xx/xx/xxxxArtist 4!Venue name!City, State!xx/xx/xxxx

简要说明,

  • :a;N;$!ba;:您需要在处理替换之前解析整个文件。参考上面的链接可能会让你更加详细。
  • s/,\n/ !/g:将,\n替换为!
  • s/\n//g:删除额外的换行符