Woo*_*ock 4 linux sed string text-processing
我sed
整个上午都在尝试和谷歌搜索,但我似乎无法让它发挥作用。
是否有可能与sed
以小写两个特定字符之间的文本:
IE
SOMENAME=WOODSTOCK,
SOMEOTHERNAME=JIMMY,
Run Code Online (Sandbox Code Playgroud)
我可以小写 WOODSTOCK
和JIMMY
(对伍德斯托克和吉米),因为它们介于=
和之间,
?
使用 GNU sed 是可能的。根据替换的贪婪程度选择这两种形式之一。
sed 's|=.*,|\L&|' file
sed 's|=[^,]*,|\L&|' file
Run Code Online (Sandbox Code Playgroud)
正如手册所述,“\L
将替换变为小写,直到找到a\U
或\E
”。&
是正则表达式匹配的文本。
我修改了示例文件以表明您应该明智地在 geedy=.*,
和 non-greedy 正则=[^,]*,
表达式之间进行选择:
$ cat file
SOMENAME=WOODSTOCK,
SOMEOTHERNAME2=JIMMY,WOODSTOCK,FINISH
$ sed 's|=.*,|\L&|' file
SOMENAME=woodstock,
SOMEOTHERNAME2=jimmy,woodstock,FINISH
$ sed 's|=[^,]*,|\L&|' file
SOMENAME=woodstock,
SOMEOTHERNAME2=jimmy,WOODSTOCK,FINISH
Run Code Online (Sandbox Code Playgroud)