#!/bin/bash
max_len=0
max_string=''
#判断输入的参数个数是否小于1
if [[ $# -lt 1 ]];then
printf "Usage: %s file[...]\n" $0
fi
#输出参数
for i in $*;do
echo $i
done
#遍历文件中的字符串 ``中的操作是将文件中非a-zA-Z的字符替换为空格并压缩
for i in `cat $1 | tr -s -c "a-zA-Z" " "`;do
len=${#i}
if [[ $len -gt ${max_len} ]];then #查找最大长度及最大长度的字符串
max_len=$len
max_string=$i
fi
done
echo $max_string $max_len
运行结果:
#输出Prime2.sh文件中的最长字符串及其长度
lj@Aliyun test % bash find_max_string_one_file.sh Prime2.sh
Prime2.sh
function 8 #最长的字符串是function,长度为8