shell脚本之cut

cut命令;
-d 指定分隔符
-f指定要截取的列
-c指定第几个区块

题目:写一个脚本
1.设定变量FILE的值为/etc/passwd
2.依次向/etc/passwd中的每个用户问好,并且说出对方的ID是什么
形如:
Hello,root,your UID is 0.
3.统计一个有多少个用户
分析:

文件:

file="/etc/passwd"  #为其赋值

行数:
(方法一)

lines=`wc -l /etc/passwd | cut -d " " -f1`
# 此处因为wc -l 会输出行数以及文件名 又因为cut没有默认的分隔符
#所以必须用 -d 选项指定分隔符

(方法二)

lines=`wc -l /etc/passwd | awk '{print $1}'`
# awk默认以空格或tab做分隔符

用户user及ID

用cut 或 aWK 截取

代码如下,以cut为例:

#! /bin/bash
file="/etc/passwd"
lines=`wc -l /etc/passwd |cut -d" " -f1`
for i in `seq 1 $lines`
do
    userid=`head -$i $file |tail -1|cut -d":" -f3`
    username=`head -$i $file |tail -1|cut -d":" -f1`
    echo " Hello,$username,your UID is $userid."
done
echo "there are $lines users" 

你可能感兴趣的:(shell)