Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
替换多个换行符&;使用sed添加分隔符?_Sed - Fatal编程技术网

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

替换多个换行符&;使用sed添加分隔符?,sed,Sed,我有一个.txt文件,格式如下: Artist 1, Artist 2, Artist 3, Venue name, City, State, xx/xx/xxxx Artist 4, Venue name, City, State, xx/xx/xxxx 每个部分的艺术家数量可变,每个条目之间有一组新行。我希望能够将其导入到带有某种分隔符的电子表格中,这样我就可以将每个部分都放在自己的行中(其中每行有四列,分别属于四个字段-艺术家、地点、地点、日期) 图一需要: 用某种分隔符

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

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








Artist 4,
Venue name,
City, State,
xx/xx/xxxx
每个部分的艺术家数量可变,每个条目之间有一组新行。我希望能够将其导入到带有某种分隔符的电子表格中,这样我就可以将每个部分都放在自己的行中(其中每行有四列,分别属于四个字段-艺术家、地点、地点、日期)

图一需要:

  • 用某种分隔符替换
    ,\n
    的所有实例
  • 删除所有额外的换行符
  • …但似乎找不到一种方法让它在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
      :删除额外的换行符

    您没有显示预期结果。