当前位置: 技术问答>linux和unix
shell script 查找最长的字符串
来源: 互联网 发布时间:2016-12-16
本文导语: 问题 1: 处理一个 存有各种名字的文件。 名字中间带空格。 如何找出最长的一个。并且数出来有多少个字符。包含空格。 问题 2: 情况和上面一样 但是要按名字长度排序 最长的名字 排到最下面输出。 刚才问了...
问题 1:
处理一个 存有各种名字的文件。 名字中间带空格。
如何找出最长的一个。并且数出来有多少个字符。包含空格。
问题 2:
情况和上面一样
但是要按名字长度排序 最长的名字 排到最下面输出。
刚才问了格式输出的问题。。后来又看了看那个文件。发现最长的人名居然有41个字符(带空格) 。。服了老外了。。
|
如果是一行一个名字的话
#!/bin/sh
#把yourfilename改成你真实的文件名
FILENAME=yourfilename
COL="33[01;34m"
NULL="33[00m"
cat $FILENAME | while read line
do
num=`echo "$line" | wc -c`
echo $num">""$line" >> /tmp/tmp.txt
done
echo -e "${COL}Answer for question 1:${NULL}"
sort /tmp/tmp.txt | tail -n 1
echo -e "${COL}Answer for question 2:${NULL}"
#如果你要把每个名字前面显示字节数的话 请把下面这句后面的| cut -d">" -f2去掉
#如果你要把结果写入一个文件output.txt的话 在下面这句末尾加上 > output.txt
sort /tmp/tmp.txt | cut -d">" -f2
rm -rf /tmp/tmp.txt
|
你那个存放名字的文件 是一行一个名字么?
要是一行多个名字 名字本身含空格的话 如何区分?
要是一行多个名字 名字本身含空格的话 如何区分?
|
顶楼上