使用sed将第6个反斜杠后的所有内容向上移动一行

使用sed将第6个反斜杠后的所有内容向上移动一行,sed,Sed,我有许多url保存在一个txt文件中,如上图所示。我想在第六个反斜杠后用sed脚本将所有内容移动一行 第6个反斜杠后的txt是标题,并且总是不同的。我需要选择标题以便播放它 所以我需要它看起来像这样 http://www.somesite/play/episodes/xyz/fred-episode-110 http://www.somesite/play/episodes/abc/simon-episode-266 http://www.somesite/play/episodes/qwe/m

我有许多url保存在一个txt文件中,如上图所示。我想在第六个反斜杠后用sed脚本将所有内容移动一行

第6个反斜杠后的txt是标题,并且总是不同的。我需要选择标题以便播放它

所以我需要它看起来像这样

http://www.somesite/play/episodes/xyz/fred-episode-110
http://www.somesite/play/episodes/abc/simon-episode-266
http://www.somesite/play/episodes/qwe/mum-episode-39
http://www.somesite/play/episodes/zxc/dad-episode-41
http://www.somesite/play/episodes/asd/bob-episode-57
仅使用sed


我可以用awk来完成,但我只想用sed来完成。您可以使用以下sed命令:

fred-episode-110
http://www.somesite/play/episodes/xyz/fred-episode-110
simon-episode-266
http://www.somesite/play/episodes/abc/simon-episode-266
mum-episode-39
http://www.somesite/play/episodes/qwe/mum-episode-39
dad-episode-41
http://www.somesite/play/episodes/zxc/dad-episode-41
bob-episode-57
http://www.somesite/play/episodes/asd/bob-episode-57
关于您的输入:

解释:

  • h将模式缓冲区复制到保留缓冲区
  • s@\([^/]*/\)\{6\}@@@删除模式缓冲区的内容,直到第6次
    /
    为止
  • p打印模式缓冲区
  • x
    交换模式缓冲区并保留缓冲区内容
  • 然后执行默认操作->打印模式缓冲区的内容

您可以使用以下sed命令:

fred-episode-110
http://www.somesite/play/episodes/xyz/fred-episode-110
simon-episode-266
http://www.somesite/play/episodes/abc/simon-episode-266
mum-episode-39
http://www.somesite/play/episodes/qwe/mum-episode-39
dad-episode-41
http://www.somesite/play/episodes/zxc/dad-episode-41
bob-episode-57
http://www.somesite/play/episodes/asd/bob-episode-57
关于您的输入:

解释:

  • h将模式缓冲区复制到保留缓冲区
  • s@\([^/]*/\)\{6\}@@@删除模式缓冲区的内容,直到第6次
    /
    为止
  • p打印模式缓冲区
  • x
    交换模式缓冲区并保留缓冲区内容
  • 然后执行默认操作->打印模式缓冲区的内容

    • 你也可以用这个

      sed 'h;s@\([^/]*/\)\{6\}@@;p;x;' sed_test.txt
      

      你也可以用这个

      sed 'h;s@\([^/]*/\)\{6\}@@;p;x;' sed_test.txt