请求协助拼接两条Shell命令的输出,生成指定格式结果
拼接Shell命令输出生成指定格式字符串
可以通过以下方式将两条命令的输出拼接成firstnamelastname.Serialnumber.local格式的内容:
分步命令写法
# 获取拼接后的姓名(名+姓,无空格) NAME=$(finger | awk 'NR>1{print $2$3}' | uniq) # 获取设备序列号 SERIAL=$(system_profiler SPHardwareDataType | awk '/Serial/{print $NF}') # 输出最终格式内容 echo "${NAME}.${SERIAL}.local"
单行命令写法
echo "$(finger | awk 'NR>1{print $2$3}' | uniq).$(system_profiler SPHardwareDataType | awk '/Serial/{print $NF}').local"
命令说明
- 姓名处理:
finger输出用户列表后,用awk 'NR>1{print $2$3}'跳过第一行的表头行,直接拼接第二列(名)和第三列(姓),再通过uniq去除重复的用户条目。 - 序列号处理:
system_profiler SPHardwareDataType输出硬件信息,用awk '/Serial/{print $NF}'匹配包含"Serial"的行,提取该行最后一列的序列号内容。 - 拼接输出:通过命令替换
$()分别获取两部分内容,再与.local后缀拼接后输出。
内容的提问来源于stack exchange,提问作者user8399204
相关产品推荐
相关产品推荐

