我怎么只能在bash中提取部分:"cluster_000621"
在:
RATTUS_littleBoy.cluster_000621.ok.ok.ok.ok
感谢您的帮助。
答案 0 :(得分:1)
尝试一下:
echo "RATTUS_littleBoy.cluster_000621.ok.ok.ok.ok" | sed "s/^[^.]*\.\([^.]*\)\..*/\1/g"
详细说明:
s/ # substitute
^ # begin of line
[^.]* # all char without '.'
\. # only '.'
\([^.]*\) # all char without '.' in argument1
\. # only '.'
.* # all chars
/\1 # replace with argument 1
/g # global, on the line
答案 1 :(得分:1)
使用awk,sed或cut。
使用剪切:
echo "RATTUS_littleBoy.cluster_000621.ok.ok.ok.ok" | cut -d. -f2
使用“。”分隔。分隔符
答案 2 :(得分:1)
bash的read
内置函数将为您解析它,而不会产生另一个进程。
$: IFS="$IFS." read x val x <<< "RATTUS_littleBoy.cluster_000621.ok.ok.ok.ok"
$: echo $val
cluster_000621