\\folder name \ folder1 \ folder2 \ folder3 \ folder4
\\folder name \ very long folder name \ even longer name
I would like to find the length of the characters (including space) between the \'s. However, I want the list to show me only the lengths that are above, say, 15 characters.
$ echo "\\folder name \ very long folder name \ even longer name" | nawk -F'\\' -v val="$threshold" '{for(i=0;++i<=NF;) if((x=length($i))>=val) print $i":"x}'
folder name :12
very long folder name :23
even longer name:17
$
$ threshold=18
$ echo "\\folder name \ very long folder name \ even longer name" | nawk -F'\\' -v val="$threshold" '{for(i=0;++i<=NF;) if((x=length($i))>=val) print $i":"x}'
very long folder name :23
$ threshold=16
$ echo "\\folder name \ very long folder name \ even longer name" | nawk -F'\\' -v val="$threshold" '{for(i=0;++i<=NF;) if((x=length($i))>=val) print $i":"x}'
very long folder name :23
even longer name:17
$
Do you want to see the length, the problem dir name and the whole path on output lines? You could cut it up with sed to create a command stream for shell to generate the number, filter, and present. Ksh ${#name} can give lengths, and sed can present values quoted. PERL could to it all, not being clumsy around whitespace.