批处理查找字符数最多的文本行-shell
有文本3.txt如下:
aaaaaaa aaaa bbbbbb ccccccccccc dddd
aa aaaaaaa bbbbbbbb cccccccccc ddddddddddddd eeeeeee
aaaaaaaaaaaa bbbbbbbbbbb cccccccccccccccccccc
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aa
aaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbb
aaaaaaaaa ccccccccc bbbbbbbbbbbbb ddddddddddddddddd
通过批处理查找出文本中字符数(不含空格)最多的行并输出,很明显就是复制内容到剪贴板代码:
aaaaaaaaa ccccccccc bbbbbbbbbbbbb ddddddddddddddddd
编写代码
#! /bin/bash
# 保存最大长度
rowLen=0
# 保存需要输出的字符串
printStr=
while read line
do
# 记住去掉空格之前的字符串
saveLine=${line}
# 去掉空格
line=${line// /}
# 统计字符串个数
len=${#line}
# 判断当前行是不是最多字符数
if [ ${len} -gt ${rowLen} ]
then
rowLen=${len}
printStr=${saveLine}
fi
done < ./3.txt
# 输出最大字符串数
echo ${printStr}
运行结果
主要思路
- 1.读取文件,输出每一行
- 2.处理具体某一行
- 2.1 将空格去掉
- 2.2 统计字符串字符数
- 3.找出最大行数
具体逻辑参考代码注释
参考文档
文件读取:http://www.cnblogs.com/iloveyoucc/archive/2012/07/10/2585529.html
关系运算符:http://www.runoob.com/linux/linux-shell-basic-operators.html
shell变量里的字符替换:http://blog.csdn.net/augusdi/article/details/41010041
测试
1.测试当前文件
2.更改最大字符串行数