Visit Our UNIX and Linux User Community


Awk: Searching for length of words between slash character


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Awk: Searching for length of words between slash character
# 1  
Old 06-03-2011
Power Awk: Searching for length of words between slash character

Dear UNIX Community,

I have a set of file paths like the one below:

Code:
 
\\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.

Any tips or suggestions would be very help.

Many thanks,

vnayak
# 2  
Old 06-03-2011
Code:
$ pwd
/export/home/admin/sand
$ pwd | sed 's:/:\\:g;s:^:\\:'
\\export\home\admin\sand

Code:
$ threshold=5
$ pwd | sed 's:/:\\:g;s:^:\\:' | nawk -F'\\' -v val="$threshold" '{for(i=0;++i<=NF;) if(length($i)>=val) print $i":"length($i)}'
export:6
admin:5

Code:
$ 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
$

Code:
$ 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

Code:
$ 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
$


Last edited by ctsgnb; 06-03-2011 at 03:27 PM..
This User Gave Thanks to ctsgnb For This Post:
# 3  
Old 06-03-2011
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.
# 4  
Old 06-03-2011
Code:
!/usr/bin/ksh
sed -e 's#\\#@#g' input_file | while read mLine
do
  IFS='@'
  for mFld in ${mLine}
  do
    echo "mFld <${mFld}> Length <${#mFld}>"
  done
done

This User Gave Thanks to Shell_Life For This Post:
# 5  
Old 06-03-2011
Code:
perl -F'\\' -lane 'for (@F){print $_ .":". length $_ if($_)}' names

Output:

f
Code:
older name :12
 folder1 :9
 folder2 :9
 folder3 :9
 folder4:8
folder name :12
 very long folder name :23
 even longer name:17

This User Gave Thanks to getmmg For This Post:
# 6  
Old 06-03-2011
I was thinking:
FolderLength FolderName FullPath
This User Gave Thanks to DGPickett For This Post:
# 7  
Old 06-03-2011
Code:
nawk -F'\\' 'OFS=":"{for(i=1;i<NF;i++) {if($i!~/^$/) print $i,length($i)}}' filename
folder name :12
folder1 :9
folder2 :9
folder3 :9

This User Gave Thanks to Shahul For This Post:

Previous Thread | Next Thread
Test Your Knowledge in Computers #501
Difficulty: Easy
If a piece of code adds two numbers together and stores the result, there should be a comment that explains the process in the source code.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Delimit file based on character length using awk

Hi, I need help with one problem, I came across recently. I have one input file which I need to delimit based on character length. $ cat Input.txt 12345sda231453 asd760kjol62569 sdasw4g76gdf57 And, There is one comma separated file which mentions "start of the field" and "length... (6 Replies)
Discussion started by: Prathmesh
6 Replies

2. UNIX for Dummies Questions & Answers

Sorting words based on length

i need to write a bash script that recive a list of varuables kaka pele ronaldo beckham zidane messi rivaldo gerrard platini i need the program to print the longest word of the list. word in the output appears on a separate line and word order in the output is in the order Llachsicografi costs.... (1 Reply)
Discussion started by: yairpg
1 Replies

3. Shell Programming and Scripting

stdout to file or character device with trailing slash

I have an interesting one for the gurus out there that may have an idea as to why this is happening. We're currently migrating from Solaris 9 to Solaris 10 and we've run into a very strange issue. There are a bunch of shell scripts people have written throughout a directory that are used for... (4 Replies)
Discussion started by: dcarrion87
4 Replies

4. Shell Programming and Scripting

Using sed to append backward slash before forward slash

Hi all, I need to know way of inserting backward slash before forward slash. My problem is that i need to supply directory path as an argument while invoking cshell script. This argument is further used in script (i.e. sed is used to insert this path in some file). So i need to place \ in front... (2 Replies)
Discussion started by: sarbjit
2 Replies

5. Shell Programming and Scripting

searching for words between delimeters from the rear

Hi, i need to pick up dates and times from the file names which are of unequal length. The dates and time are delimited by dot. I am interested in getting the strings between the delimeter for fields -3, -4, -5 from behind (rear) so that the out put looks like : 071118.011300.556 I have... (2 Replies)
Discussion started by: oktbabs
2 Replies

6. Shell Programming and Scripting

Searching words in a file containing a pattern

Hi all, I would like to print words in a file seperated by whitespaces containing a specific pattern like "=" e.g. I have a file1 containing strings like %cat file1 The= some= in wish= born <eof> .I want to display only those words containing = i.e The= , some=,wish= ... (5 Replies)
Discussion started by: sree_123
5 Replies

7. Shell Programming and Scripting

Using Awk script to check length of a character

Hi All , I am trying to build a script using awk that checks columns of the Ónput file and displays message if the column length exceeds 35 char. i have tried the below code but it does not work properly (2 Replies)
Discussion started by: amit1_x
2 Replies

8. UNIX for Dummies Questions & Answers

searching and displaying most commonly used words

Hi guys, i need to search the most commonly occuring words in a file and display their counts of about 30000 words and the words shud not be of typ specified in file 2 e. words like is,for,the,an,he,she etc... k. file1: ALICE was beginning to get very tired of sitting by... (2 Replies)
Discussion started by: arunsubbhian
2 Replies

9. UNIX for Dummies Questions & Answers

searching by string length

Hi, I'm rather new to Unix and I'm trying to write a simple script to search through a dictionary for words based on the letters a user would pass as arguments to the script. Now I have the searching part done. However, the one thig that still eludes me is that I want to only keep the... (4 Replies)
Discussion started by: GADO
4 Replies

10. UNIX for Dummies Questions & Answers

Shell script: Cut / (slash) character in string

I have a string "\/scratch\/databases\". I want to have a new string "\/scratch\/databases" by cutting last '\' character using shell script. I can't do this Please help me. Thanks in advance ThuongTranVN (4 Replies)
Discussion started by: ThuongTranVN
4 Replies

Featured Tech Videos