3
A
回答
2
b
的命令stands for branching:无条件分支到标签。标签可以省略(如你的例子),在这种情况下,下一个周期开始。
请注意,在大多数情况下,使用此命令意味着您可能更适合使用awk,Perl或Python等真实编程语言进行编程。
+0
我发现当标签被省略时,它可以让你“积极地思考”你的数据。我的意思是通过积极绕过线条,它可以让你专注于那些剩下的线条。它也可以避免将'{..}'命令分组。 – potong
0
在POSIX sed
和GNU sed
- 和sed
其它变体 - 的b
命令跳到一个标签的脚本,或在不存在标签的名称,到脚本的末尾。这是无条件的跳跃。还有一个有条件的跳跃;那是t
。你用:label
做一个标签。
在您的问题的脚本的上下文中,b
是无用的。如果模式匹配,则会转到脚本的末尾,就像没有匹配一样。
因为当t
命令非常有用的一个例子,考虑数据文件(data
):
Be very, very, very, very, very, very scared of sed scripts with branches.
现在考虑这些sed
脚本的输出:
$ sed 's/very, very/very/' data
Be very, very, very, very, very scared of sed scripts with branches.
$ sed 's/very, very/very/g' data
Be very, very, very scared of sed scripts with branches.
$ sed -e ':label' -e 's/very, very/very/g' -e 't label' data
Be very scared of sed scripts with branches.
$
确保你明白s///g
修饰符的作用以及结果为何如此。
我去了我的$HOME/bin
目录,发现其中使用sed
的97个脚本,其中包括一些非常复杂的sed
块。我只找到一个脚本(rmemptysubdirs
)使用sed
标签和分支:
# Remove empty directories from paths
find "[email protected]" -type d -print |
sed -ne 'p
:b
s%/[^/]*$%%
p
t b' |
sort -ur |
xargs rmdir 2>/dev/null
的sed
脚本这里转换包含行:
/absolute/path/name/for/directory
到:
/absolute/path/name/for/directory
/absolute/path/name/for
/absolute/path/name
/absolute/path
/absolute
注意,脚本使用标签b
,而不是b
命令。
相关问题
- 1. 这个sed命令是做什么的?
- 2. 这个sed命令的含义是什么? SED的%^ */%%'
- 3. 什么是linux内置shell命令?
- 4. Linux的命令:sed -e表达错误
- 5. 'G'用sed命令做什么?
- 6. 为什么不使用sed命令?
- 7. 为什么sed命令包含符号
- 8. 这个sed命令有什么问题?
- 9. sed命令上的-itmp标志是做什么的?
- 10. 使用linux sed命令更新文件
- 11. Sed命令选项的含义是什么?
- 12. 什么可能是这个sed命令的更快更换?
- 13. linux shell中的`set ovs_ctl $ {1-start}`命令是什么意思?
- 14. RegEx模式发现在崇高的文本,但不是在Linux sed命令sed
- 15. 在字符串中的Bash脚本条中的Linux SED命令'
- 16. sed中的命令替换
- 17. sed中的命令分组
- 18. 在linux中,'make'命令是什么意思?
- 19. sed命令行
- 20. 在sed命令
- 21. sed的: '// d' 命令
- 22. linux和unix命令有什么区别?
- 23. 这是什么linux命令的相当于PowerShell的
- 24. 什么是shell_add_cmd,是为linux添加命令?
- 25. 这是什么意思在Linux中的sed“$ A \” A.TXT
- 26. 对于linux命令xargs,Inone的意思是什么?
- 27. Linux上可信度最高的命令结果是什么?
- 28. “cd”的含义是什么?命令在Linux?
- 29. 在warden linux下命令cf的路径是什么?
- 30. 什么是Linux文件命令的输出版本号字段
请参阅[这里](http://www.gnu.org/software/sed/manual/sed.html#Programming-Commands) – potong