我在这里还很新,希望了解有关bash编程的更多信息。
所以首先我需要一些有关finger命令的帮助。
当我只使用“手指”时,多数民众赞成在我得到的输出,显然是一些数据集。
Login Name Tty Idle Login Time Where
我想要的是我修改了finger命令,因此它仅输出“名称”及其关联的数据集,如下所示:
Name
...
最佳答案
您可以使用awk
:
finger | awk '{print $2}'
编辑:结合使用
awk
和cut
的新方法,对于任意格式的名称而言,它更健壮。#!/bin/bash
#parse_finger.sh
#Read first line from stdin
IFS='$\n' read -r line
#Count the number of chars until 'Name'
str=$(echo "$line" | awk -F "Name" '{print $1}')
start=${#str}
start=$((start+1))
#Count the number of chars until 'Tty'
str=$(echo "$line" | awk -F "Tty" '{print $1}')
stop=${#str}
stop=$((stop-1))
#Print out the 'Name' header
echo "$line" | cut -c $start-$stop
#Read in the rest of our lines and print the cols we care about
while IFS='$\n' read -r line; do
echo "$line" | cut -c $start-$stop
done
用
finger | parse_finger.sh
运行关于linux - finger命令仅显示用户名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48270710/