我正试图找到一种方法来删除第一个单词IF中的所有字符,该字符位于第二个单词中.输入看起来像这样:
电脑成本
结果应该是:"mpuer"因为c,o和t被删除了.这样的多行由返回分隔,2个单词用空格分隔.
我一直在寻找解决方案,但我真的被卡住了.所有帮助表示赞赏.
这可能对你有用:
echo "computer cost" |
sed ':a;s/\(.\)\(.* .*\1.*\)/\2/;ta;s/ .*//'
mpuer
Run Code Online (Sandbox Code Playgroud)
说明:
:a;s/\(.\)\(.* .*\1.*\)/\2/tas/ .*//替换正则表达式可以进一步解释:
\(.\)匹配第一个单词中的任何字符(后面称为\1)\(.* .*\1.*\)匹配单词的其余部分中的任何字符,.*后跟一个空格, followed by some on none characters in word two .*然后是单词1中的匹配字符,\1后跟单词2中的其余字符,.*此分组稍后将被称为\2.\2从而有效地删除匹配字符\1| 归档时间: |
|
| 查看次数: |
948 次 |
| 最近记录: |