我真的很难回答这个问题。抱歉问了这么一个菜鸟问题。
查找出来的行产生如下结果:
192.168.1.234/50112(LOCAL\username)
期望输出:
192.168.1.234-(LOCAL\username)
我知道我可以创建一个语句来查找/
第一部分的“之后的所有字符”,因为这个正斜杠是每行中正斜杠的第一个实例。
我该如何替换每行中的/
和(
之间的数字?-
答案1
如果总是数字,你可以说
$ echo "$line" | sed 's,/[[:digit:]]\+,-,'
192.168.1.234-(LOCAL\username)
否则,如果你不知道里面有什么,请匹配斜线和一个或多个非括号字符
$ echo "$line" | sed 's,/[^(]\+,-,'
192.168.1.234-(LOCAL\username)
实际上,您可以使用扩展通配符在 bash 中正确执行此操作:
$ shopt -s extglob
$ echo "${line/\/+([0-9])/-}"
192.168.1.234-(LOCAL\username)