我的输入信息可以是:“abc1-abc-ab-0 / 1/2”或“abc1-abc-0/1/2”。我需要一个帮助来将我的返回变量放在一行中。在我的正则表达式代码中,我得到两行maches。任何人都可以帮助我吗?
[root@server]# echo "abc1-abc-ab-0/3/7" | grep -oP '^(([a-zA-Z0-1]){4})-(([a-zA-Z]){3})|-(([a-zA-Z]){2})'
abc1-abc
-ab
答案 0 :(得分:2)
换行符归于grep -o
。我会通过| tr '\n' ' '
答案 1 :(得分:1)
可能需要这个正则表达式
# ^(([a-zA-Z0-1]){4})-(([a-zA-Z]){3})(-(([a-zA-Z]){2}))?
^
( # (1 start)
( [a-zA-Z0-1] ){4} # (2)
) # (1 end)
-
( # (3 start)
( [a-zA-Z] ){3} # (4)
) # (3 end)
( # (5 start)
-
( # (6 start)
( [a-zA-Z] ){2} # (7)
) # (6 end)
)? # (5 end)
答案 2 :(得分:0)
在一行收集命令输出的两种方法:
echo $( command )
command | xargs echo