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"