合并 2 个正则表达式 - 获取带连字符的字符串的第一个字符
merge 2 regular expressions - get the first characters of a hyphenated string
有谁知道如何最好地合并此语句中的两个 sed
命令:
$ echo "Apple-Boy-Cat" | sed 's/\B.//g;' | sed 's/-//g'
ABC
上面的工作正常,但我有一种挥之不去的感觉,我忘记了一些可以避免我的东西 运行 两个单独的 sed 语句。
我曾尝试执行 sed 's/\B.//g;y/-//'
但我收到未终止 y
命令的错误。
您可以使用正则表达式交替运算符 \|
。
$ echo "Apple-Boy-Cat" | sed 's/\B.\|-//g'
ABC
注意 \B
匹配两个单词字符或两个非单词字符。它与 \b
相反( 在单词字符和非单词字符之间匹配 )。
这不是 sed
,而是显示如何使用 awk
获得相同的结果:
echo "Apple-Boy-Cat" | awk -F- '{for (i=1;i<=NF;i++) printf substr($i,1,1);print ""}'
ABC
它按-
拆分字符串,然后打印每个单词的第一个字母。
有谁知道如何最好地合并此语句中的两个 sed
命令:
$ echo "Apple-Boy-Cat" | sed 's/\B.//g;' | sed 's/-//g'
ABC
上面的工作正常,但我有一种挥之不去的感觉,我忘记了一些可以避免我的东西 运行 两个单独的 sed 语句。
我曾尝试执行 sed 's/\B.//g;y/-//'
但我收到未终止 y
命令的错误。
您可以使用正则表达式交替运算符 \|
。
$ echo "Apple-Boy-Cat" | sed 's/\B.\|-//g'
ABC
注意 \B
匹配两个单词字符或两个非单词字符。它与 \b
相反( 在单词字符和非单词字符之间匹配 )。
这不是 sed
,而是显示如何使用 awk
获得相同的结果:
echo "Apple-Boy-Cat" | awk -F- '{for (i=1;i<=NF;i++) printf substr($i,1,1);print ""}'
ABC
它按-
拆分字符串,然后打印每个单词的第一个字母。