Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将除xml标记外的所有文本小写_Xml_Linux_Awk_Sed - Fatal编程技术网

将除xml标记外的所有文本小写

将除xml标记外的所有文本小写,xml,linux,awk,sed,Xml,Linux,Awk,Sed,我有大量带标签的字符串: watch <TEAM>Philly's</TEAM> Game what's on <TIME>Wednesday night eight o'clock</TIME> 但是我不知道如何避免XML标记。欢迎使用任何语言/工具。此sed(gnu)一行程序可能有助于: sed -r 's/([^<>]*)($|<)/\L\1\E\2/g' sed-r/([^]*)($|此sed(gnu)一行程序可能有助

我有大量带标签的字符串:

watch <TEAM>Philly's</TEAM> Game
what's on <TIME>Wednesday night eight o'clock</TIME>
但是我不知道如何避免XML标记。欢迎使用任何语言/工具。

此sed(gnu)一行程序可能有助于:

sed -r 's/([^<>]*)($|<)/\L\1\E\2/g'
sed-r/([^]*)($|此sed(gnu)一行程序可能有助于:

sed -r 's/([^<>]*)($|<)/\L\1\E\2/g'
sed-r/([^]*)($|
sed-e/\(.*\)/\L\1/'-e/\(]*>\)/\U\1/g'文件名
sed-e's/\(.*\)/\L\1/'-e's/\(]*>\)/\U\1/g'文件名

以下是如何使用
awk

awk -F"<|>" '{for (i=1;i<=NF;i++) printf "%s",(i%2?tolower($i):"<"$i">");print ""}' file
watch <TEAM>philly's</TEAM> game
what's on <TIME>wednesday night eight o'clock</TIME>

awk-F”“{for(i=1;i以下是如何使用
awk

awk -F"<|>" '{for (i=1;i<=NF;i++) printf "%s",(i%2?tolower($i):"<"$i">");print ""}' file
watch <TEAM>philly's</TEAM> game
what's on <TIME>wednesday night eight o'clock</TIME>

awk-F”“{for(i=1;我的工作很有魅力!我的工程师好奇地问它是如何工作的!你介意解释一下这个命令吗?我看到搜索/替换命令有两个捕获组,但没有看到更多…@xeon将
\L\1\E\2
更改为
\r\n\r\n\r\n\r\n\r\r\n\r\n\r\r\n\r\r\ned解释。
\E
在这种情况下是无用的。工作起来很有魅力!我的工程师好奇地问它是如何工作的!你介意解释命令吗?我看到搜索/替换命令有两个捕获组,但没有看到更多。@xeon将
\L\1\E\2
更改为
\35;#####\2
然后你看到正则表达式匹配了什么。for
\L\E
请阅读info sed,这里有详细的解释。
\E
在这种情况下没有用处。看起来这个解决方案只是结合了两个命令(与第一个答案相比)。为什么使用\U而不是\E?@xeon,这是一种稍有不同的方法。第一个表达式将所有内容转换为小写,第二个表达式将<和>之间的所有内容转换为大写。如果当前不是所有xml标记都是大写的,这可能会很方便。看起来此解决方案仅结合了两个命令(与第一个答案相比)。为什么使用\U而不是\E?@xeon,这是一种稍微不同的方法。第一个表达式将所有内容转换为小写,第二个表达式将<和>之间的任何内容转换为大写。如果当前并非所有xml标记都是大写,这可能会很方便。
sed -e 's/\(.*\)/\L\1/' -e 's/\(<[^>]*>\)/\U\1/g' fileName
awk -F"<|>" '{for (i=1;i<=NF;i++) printf "%s",(i%2?tolower($i):"<"$i">");print ""}' file
watch <TEAM>philly's</TEAM> game
what's on <TIME>wednesday night eight o'clock</TIME>