使用OS X,我需要一行bash脚本来查看客户端mac主机名,如: 12345-BA-学龄前儿童LT.local

前5位数字是资产序列号,连字符将业务单位代码与部门名称分隔,后跟类似“LT”的字母表示笔记本电脑。

我想我需要回应主机名并使用sed,awk的组合,或者可能会删除以删除字符以留下我:
“BA PreSchool”

任何帮助非常感谢。这就是我到目前为止所做的:

echo $HOSTNAME | sed 's/...\(...\)//' | sed 's/.local//'
有帮助吗?

解决方案

 echo "12345-BA-PreSchool-LT.local" | cut -d'-' -f2,3 | sed -e 's/-/ /g'

(不在OSX上,所以不确定是否定义了剪切)

其他提示

我喜欢保持简单:)

你可以用切割来做到这一点:

echo 12345-BA-PreSchool-LT.local | cut -d"-" -f2,3
BA-PreSchool

如果要删除连字符,可以使用tr

echo 12345-BA-PreSchool-LT.local | cut -d"-" -f2,3 | tr "-" " "
BA PreSchool

怎么样

echo $HOSTNAME | awk 'BEGIN { FS = "-" } ; { print $2, $3 }'

Awk可以轻松解决您的问题。

echo "12345-BA-PreSchool-LT.local" | awk -F'-' '<*>=$2" "$3'
BA PreSchool
bash$ string="12345-BA-PreSchool-LT.local"
bash$ IFS="-"
bash$ set -- $string
bash$ echo $2-$3
BA-PreSchool
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top