使用OS X,我需要一行bash脚本来查看客户端mac主机名,如: 12345-BA-学龄前儿童LT.local
前5位数字是资产序列号,连字符将业务单位代码与部门名称分隔,后跟类似“LT”的字母表示笔记本电脑。
我想我需要回应主机名,并使用sed,awk的组合,或者可能会剪切掉字符以留下我: “BA PreSchool”
任何帮助非常感谢。这就是我到目前为止所做的:
echo $HOSTNAME | sed 's/...\(...\)//' | sed 's/.local//'
答案 0 :(得分:4)
echo "12345-BA-PreSchool-LT.local" | cut -d'-' -f2,3 | sed -e 's/-/ /g'
(不在OSX上,所以不确定是否定义了剪切)
答案 1 :(得分:3)
我喜欢保持简单:)
你可以用切割来做到这一点:
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
答案 2 :(得分:3)
怎么样
echo $HOSTNAME | awk 'BEGIN { FS = "-" } ; { print $2, $3 }'
答案 3 :(得分:0)
Awk可以轻松解决您的问题。
echo "12345-BA-PreSchool-LT.local" | awk -F'-' '$0=$2" "$3'
BA PreSchool
答案 4 :(得分:0)
bash$ string="12345-BA-PreSchool-LT.local"
bash$ IFS="-"
bash$ set -- $string
bash$ echo $2-$3
BA-PreSchool