【发布时间】:2016-09-01 11:25:37
【问题描述】:
我要做的是使用 sed 使模式右侧的所有字符小写,但仅限于包含另一个模式的行。
假设我想在包含单词 sillyduck 的行上将 /directory/ 右侧的所有内容设为小写。
之前:
sillyduck MOO/WORD/directory/THIS/FILE.TXT
sillyduck another/directory/with/a/file.DOC
#sillyduck MOO/WORD/directory/ANOTHER/FILE
sillygoose MOO/WORD/directory/THIS/FILE.TXT
SILLYDUCK MOO/WORD/DIRECTORY/THIS/FILE.TXT
sillyduck QUACK/DUCK/directory/You/Get/The/Idea.doc
之后:
sillyduck MOO/WORD/directory/this/file.txt
sillyduck another/directory/with/a/file.doc
#sillyduck MOO/WORD/directory/another/file
sillygoose MOO/WORD/directory/THIS/FILE.TXT
SILLYDUCK MOO/WORD/DIRECTORY/THIS/FILE.TXT
sillyduck QUACK/DUCK/directory/you/get/the/idea.doc
这样做的最佳方法是什么?我想坚持使用 sed 来解决问题。
提前致谢! :)
【问题讨论】:
-
您应该在不同的上下文中包含几行带有单词“directory”两次的示例输入。在某些情况下,大多数潜在的解决方案可能无法满足您的需求。
-
对此表示歉意。一行中第一个目录之后的任何内容都应设为小写。之前:sillyduck MOO/WORD/directory/THIS/directory/FILE.TXT 之后:sillyduck MOO/WORD/directory/this/directory/file.txt
-
您应该将其添加到您的示例输入/输出中。
标签: sed