使用sed将第6个反斜杠后的所有内容向上移动一行
我有许多url保存在一个txt文件中,如上图所示。我想在第六个反斜杠后用sed脚本将所有内容移动一行 第6个反斜杠后的txt是标题,并且总是不同的。我需要选择标题以便播放它 所以我需要它看起来像这样使用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
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
- 然后执行默认操作->打印模式缓冲区的内容
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