我在这里还很新,希望了解有关bash编程的更多信息。

所以首先我需要一些有关finger命令的帮助。
当我只使用“手指”时,多数民众赞成在我得到的输出,显然是一些数据集。

Login    Name   Tty   Idle   Login Time   Where


我想要的是我修改了finger命令,因此它仅输出“名称”及其关联的数据集,如下所示:

Name
...

最佳答案

您可以使用awk

finger | awk '{print $2}'


编辑:结合使用awkcut的新方法,对于任意格式的名称而言,它更健壮。

#!/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/

10-11 10:58