今日小练题目📢
输入一句英文,找出句子中小于6的单词
优秀作业🤌🏻
#!/bin/bash
#author:xYLiuuuuu
#date:2025-1-4
read -p "请输入一句英文:" str
n=`echo $str|awk -F '[ +-.]' '{print NF}'`
for i in `seq $[$n-1]`
do
w=`echo $str|awk -F '[ +-.]' -v j=$i '{print $j}'`
l=`echo $w|wc -L`
if [ $l -lt 6 ]
then
echo "单词 $w 长度小于6"
fi
done
敲黑板📝
-
awk内置变量
- NF 读取记录的字段数(列数)
- NR 读取文件的行数(在某些应用场景中可以当作行号来使用)
- FNR 也是读取文件的行数,但是和NR 不同的是当读取的文件有两个或两个以上时,NR 读取完一个文件,行数继续增加 而FNR 重新从1开始记录
-
awk -v参数用来定义变量
# 将文件中的每个数字乘以这个变量的值
$ awk -v multiplier = 2 '{print $1*multiplier}' data.txt
-
回车
- echo中加入-e参数使用\n回车符号
- read中使用\x0a代表回车
-
注意seq $[$n-1]中外面的$符号