Preserving whitespace in a for loop


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Preserving whitespace in a for loop
# 1  
Old 03-25-2009
Preserving whitespace in a for loop

I obviously haven't learned my lesson with shell and whitespace.

Code:
find /path/to/some/where/ -name  "*.pdf"  | awk '{print $5}'| uniq -d

results:

some Corporation
other Corporate junk
firmx

Works fine from cmdline but the whitespace turns into another FS in a for loop.

Code:
for i in ` find /path/to/some/where -name  "*.pdf"  | awk -F/ '{print $5}'| uniq -d`;do echo $i; done

returns:

some 
Corporation
other 
Corporate 
junk
firmx

I tried using OFS and ORS to no avail.
# 2  
Old 03-26-2009
Better use a while/read construct; this will preserve the blanks.
# 3  
Old 03-26-2009
Code:
find /path/to/some/where/ -name  "*.pdf"  | awk '{print $5}'| uniq -d |while read name ; do
     echo $name
done

# 4  
Old 03-26-2009
Can't see how you got two fields from your awk '{print $5} .
Please post some sample output from the following find statement (note the single quotes instead of double quotes):

Code:
find /path/to/some/where/ -name  '*.pdf' -print

# 5  
Old 03-26-2009
Quote:
Originally Posted by rikxik
Code:
find /path/to/some/where/ -name  "*.pdf"  | awk '{print $5}'| uniq -d |while read name ; do
     echo $name
done

Awesome, didn't realize you could load a while loop like that.

methyl


The output is identical with single quote as it is with double quotes.
# 6  
Old 03-26-2009
In many circumstances the output will be identical.
I was more interested in what the output looked like.
Your first example does not have a "-F /" delimiter flag to awk. I cannot see how the command as posted could produce the output as posted.
# 7  
Old 03-26-2009
Quote:
Originally Posted by methyl
Your first example does not have a "-F /" delimiter flag to awk.
The missing -F/ is a pasting failure on my part. The original command contained it.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

REGEX to separate paths by whitespace and do a loop

I am trying to do in a single line to take a list of paths separated by whitespace and then loop thru all the paths that were wrote but my regex is not working, I have echo {3} | sed 's/ //g' | while read EACHFILE do ..... But for some reason is only taking always the first path that I... (7 Replies)
Discussion started by: jorgejac
7 Replies

2. Shell Programming and Scripting

Variable not preserving value

Hi I am running this shell script .But some how the flag value is getting reset to 0 .could you please help .I'm pasting the output of the script also for your reference. #!/usr/bin/sh # Shell script to monitor or watch the disk space # It will send an email to $ADMIN, if the (free... (5 Replies)
Discussion started by: ptappeta
5 Replies

3. Shell Programming and Scripting

Preserving values with for loop for later use

Below is the issue I am having. I have a few variables which have certain values in them like var1=23 var2=46 var3=78 etc... I want to save these values with the help of a for loop in a single variable so that I can use it later,beacuse a few lines down the script, some of these... (3 Replies)
Discussion started by: Elizabeth H
3 Replies

4. UNIX for Dummies Questions & Answers

Preserving the timestamp while running gzip?

Hi guys, I'm trying to unzip a file and rename it to another while preserving the original timestamp: $ cat file.dat.gz | gzip -d > newfile.dat My goal is to assign the file.dat.gz timestamp to newfile.dat. I cannot use gunzip, due to various checks done with wget. Basically, I have to... (1 Reply)
Discussion started by: TECK
1 Replies

5. Shell Programming and Scripting

How to match (whitespace digits whitespace) sequence?

Hi Following is an example line. echo "192.22.22.22 \"33dffwef\" 200 300 dsdsd" | sed "s:\(\ *\ \):\1:" I want it's output to be 200 However this is not the case. Can you tell me how to do it? I don't want to use AWK for this. Secondly, how can i fetch just 300? Should I use "\2"... (3 Replies)
Discussion started by: shahanali
3 Replies

6. Debian

scp not preserving properties and links

I'm trying to get a number of old disks on HP-UX 10.2 copied over to a new Debian machine which has a NAS on it. The HP does not have rsync, but does have scp. Scp unfortunately does not always preserve permissions, and does not save links which were on the disk. Apparently rsync has a flag... (3 Replies)
Discussion started by: PasadenaDave
3 Replies

7. Shell Programming and Scripting

Preventing whitespace to be a delimiter in a for loop (bash/sh)

Hi, I have a for loop which iterates over a list of strings, separated by whitespace: $ list="1 2 3" $ for i in $list; do echo $i; done 1 2 3 I now want to introduce some strings containing whitespace themselves ... This is straightforward if I directly iterate over the list: $ for... (4 Replies)
Discussion started by: kkkoehne
4 Replies

8. Shell Programming and Scripting

Whitespace in filenames in for loop in bash script

I'm trying to search all .odt files in a directory for a string in the text of the file. I've found a bash script that works, except that it can't handle whitespace in the filenames. #!/bin/bash if ; then echo "Usage: searchodt searchterm" exit 1 fi for file in $(ls *.odt); do ... (4 Replies)
Discussion started by: triplemaya
4 Replies

9. Shell Programming and Scripting

while read loop preserving leading whitespace

Hi all, I've been trying to get this to work for ages to no avail. I've searched this site and googled but cannot find a satisfactory answer. I've got a while loop, like this while read line do echo "$line" done < file_name Now, my problem is that most of the lines in the file... (3 Replies)
Discussion started by: zazzybob
3 Replies

10. Filesystems, Disks and Memory

Preserving Ownership w/tar

I'm trying to make a backup of a directory tree on Solaris 8. I'm doing this with my own ID, not root. The problem I am running into is when I extract the archive, all files are owned by me and the group is my default group. The man page lists this as the default behavior when executed by a... (1 Reply)
Discussion started by: bergerj3
1 Replies
Login or Register to Ask a Question