获取当前目录下所有文件中仅包含连续字母和数字的最长字符串

sunowsir 2018-10-17 08:42:02
大佬们看看哪有问题?


#!/bin/bash

# File Name: max_len_str_at_pi1-10.sh
# Author: sunowsir
# Mail: sunowsir@protonmail.com
# Created Time: 2018年10月14日 星期日 16时47分44秒

grep -EIHron '[a-zA-Z]+' './' 2> /dev/null | awk -F ':' '
BEGIN{
first = $0;
second = $0;
third = $0;
first_len = length(first);
second_len = length(second);
third_len = length(third);
}
{
now_str = $0;
now_length = length($3);
if (now_length > first_len) {
third = second;
second = first;
first = now_str;
first_len = now_length;
} else if (now_length > second_len && now_length < first_len) {
third = second;
second = now_str;
second_len = now_length;
} else if (now_length > third_len && now_length < second_len) {
third = now_str;
third_len = now_length;
}
}
END{
printf(" first : \n %s \n second : \n %s \n third : \n %s \n", first, second, third);
}'


...全文
217 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
勤1 2018-10-18
  • 打赏
  • 举报
回复
grep -EIHron "[a-zA-Z0-9]+" . |awk -F ':' 'BEGIN{t="";s="";f="";fl=0;sl=0;tl=0}{n=$0;nl=length($3);if(nl>=fl){t=s;tl=sl;s=f;sl=fl;f=n;fl=nl;}else if(nl>=sl){t=s;tl=sl;s=n;sl=nl;}else if(sl>=tl){t=n;tl=nl;}}END{printf("first:\n%s\nsecond:\n%s\nthird:\n%s\n",f,s,t);}'

2,161

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 UNIX文化
社区管理员
  • UNIX文化社区
  • 文天大人
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧