我试图将longest_length设置为最高数字。
#!/bin/bash
for i in $(cat list_of_aways)
do
echo $i | while IFS=, read -r area name host
do
printf "%s\n" $name
sleep 1
longest_length=${#name}
printf "%s\n" "$longest_length"
done
done
这是数据。 9999999是最长的字符串 - 我想将该变量设置为数组值,因为它是最长的。
__DATA__
HOME,script_name_12345,USAhost.com
AWAY,script_name_123,USAhost.com
HOME,script_name_1,EUROhost.com
AWAY,script_name_123,USAhost.com
HOME,script_name_123456,EUROhost.com
AWAY,script_name_12345678999999,USAhost.com
HOME,script_name_1234,USAhost.com
AWAY,script_name_1234578,USAhost.com
HOME,script_name_12,EUROhost.com
AWAY,script_name_123456789,USAhost.com
答案 0 :(得分:1)
您实际上可以使用awk命令执行此操作:
awk -F '_|,' 'NR>1 {if ( length($4) > length(max) ) { max=$4 }} END { print max }' INPUTFILE
_|,
=我们正在使用2个分隔符_
和,
if ( length($4) > length(max) ) { max=$4 }
= var max
得到与每行中当前的第4个元素进行比较,并选择最大值。
print max
=打印出最大值。
如果要将结果设置为名为longest_length
的var:
longest_length = `awk -F '_|,' 'NR>1 {if ( length($4) > length(max) ) { max=$4 }} END { print max }' INPUTFILE`