将 sed 用于混合大小写标记
Use sed for Mixed Case Tags
尝试在 win10 上使用 gnu sed v4.7 重新格式化 xlm 文件中的标签(开枪吧)。 sed
在路径中,运行 来自命令提示符。需要使用 ^
.
转义某些 windows 命令行字符
源文件
BEGIN
...
<trn:description>V7906 03/11 ALFREDOCAMEL HATSWOOD 74564500125</trn:description>
...
END
(行首三个空格)
预期输出:
BEGIN
...
<trn:description>V7906 03/11 Alfredocamel Hatswood 74564500125</trn:description>
...
END
我想要 Title Case 但这确实适合小写:
sed -i 's/^<trn:description^>\(.*\)^<\/trn:description^>$/^<trn:description^>\L^<\/trn:description^>/g' sourcefile
This command changes to Title Case:
sed 's/.*/\L^&/; s/\w*/\u^&/g' sourcefile
是否可以将其合并为一行以就地编辑原始源文件?
我想使用 sed,因为它在系统上可用,而且代码结构一致。我知道我 正如所解释的那样:
sed ... code can't distinguish a comment that talks about sessionId tags from a real sessionId tag; can't recognize element encodings; can't deal with unexpected attributes being present on your tag; etc.
感谢 Whirlpool 论坛成员的 answer and discussion。
在 sed 中“在标签内”实现模式匹配太难了,文件格式正确,因此更改了所需的行:
sed -i.bak '/^<trn:description^>/s/\w\+/\L\u^&/g; s/^&.*;\^|Trn:Description/\L^&/g' filename
说明
- 就地编辑保存带有
.bak
扩展名的原始文件
- select 行包含
<trn:description>
- 一个或多个单词
- 将第一个字符替换为大写,其余字符替换为小写
- select 以
&
开头并以 ;
或 Trn:Description
结尾的字符串
- 通过将字符替换为小写来恢复代码
- source/target
filename
注意:^
是 windows 转义字符,在其他实现中不需要
尝试在 win10 上使用 gnu sed v4.7 重新格式化 xlm 文件中的标签(开枪吧)。 sed
在路径中,运行 来自命令提示符。需要使用 ^
.
源文件
BEGIN
...
<trn:description>V7906 03/11 ALFREDOCAMEL HATSWOOD 74564500125</trn:description>
...
END
(行首三个空格)
预期输出:
BEGIN
...
<trn:description>V7906 03/11 Alfredocamel Hatswood 74564500125</trn:description>
...
END
我想要 Title Case 但这确实适合小写:
sed -i 's/^<trn:description^>\(.*\)^<\/trn:description^>$/^<trn:description^>\L^<\/trn:description^>/g' sourcefile
This command changes to Title Case:
sed 's/.*/\L^&/; s/\w*/\u^&/g' sourcefile
是否可以将其合并为一行以就地编辑原始源文件?
我想使用 sed,因为它在系统上可用,而且代码结构一致。我知道我
sed ... code can't distinguish a comment that talks about sessionId tags from a real sessionId tag; can't recognize element encodings; can't deal with unexpected attributes being present on your tag; etc.
感谢 Whirlpool 论坛成员的 answer and discussion。
在 sed 中“在标签内”实现模式匹配太难了,文件格式正确,因此更改了所需的行:
sed -i.bak '/^<trn:description^>/s/\w\+/\L\u^&/g; s/^&.*;\^|Trn:Description/\L^&/g' filename
说明
- 就地编辑保存带有
.bak
扩展名的原始文件 - select 行包含
<trn:description>
- 一个或多个单词
- 将第一个字符替换为大写,其余字符替换为小写
- select 以
&
开头并以;
或Trn:Description
结尾的字符串
- 通过将字符替换为小写来恢复代码
- source/target
filename
注意:^
是 windows 转义字符,在其他实现中不需要