shell实例(十七) ----find和xargs命令

本文介绍了一系列实用的Shell脚本案例,包括分析文件中单词出现的频率、使用cut命令提取/etc/passwd文件中的用户名、生成10进制随机数以及模拟grep命令的行为。这些脚本不仅展示了基本的Shell命令用法,还提供了实际工作中可能遇到问题的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.分析单词出现的频率

#! /bin/sh
ARGS=1
E_BADARGS=65
E_NOFILE=66

if [ $# -ne "$ARGS" ]
then
  echo "Usage: `basename $0` filename"
  exit $E_BADARGS
fi

if [ ! -f "$1" ]
then
 echo "File /"$1/" does not exist."
 exit $E_NOFILE
fi

sed -e 's//.//g' -e 's//,//g' -e 's/ //
/g'  "$1" | tr 'A-Z' 'a-z' | sort |uniq -c | sort -nr
exit 0

 

2.cut命令

#! /bin/sh
FILENAME=/etc/passwd
for user in $(cut -d: -f1 $FILENAME)
do
  echo $user
done

exit 0

 

3.确定文件时脚本

#! /bin/sh
FILENAME=/etc/passwd
for user in $(cut -d: -f1 $FILENAME)
do
  echo $user
done

exit 0

 

4.产生10进制随机数

#! /bin/sh
head -c4 /dev/urandom | od -N4 -tu4 | sed -ne '1s/.* //p'
exit 0

 

5.在脚本中模拟grep行为

#! /bin/sh
E_BADARGS=65
if [ -z "$1" ]
then
  echo "Usage:`basename $0` pattern"
  exit $E_BADARGS
fi

echo

for file in *
do
  output=$(sed -n /"$1"/p $file)
  if [ ! -z "$output" ]
  then
     echo -n "$file: "
     echo $output
  fi

  echo
done

echo
exit 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值