Set problem with spaces


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Set problem with spaces
# 8  
Old 09-07-2013
unfortunately, non of these are working.


here's how i'm doing it.

i have to set the variable this way:
Code:
set $(cat myvars)


then get the fields this way:

Code:
echo $* | awk/print whatever column i need

or
Code:
echo $@ | awk/print whatever column i need.

the spaces are being a major pain

ihave to do this on a linux/sunos host. linux hosts are ubuntu/centos/red hat.
# 9  
Old 09-07-2013
That is because in addition to your original problem specification you are using command substitution: $( ... ) which will cause the output of the command to be split into fields according to the IFS variable, which defaults to a space, a TAB and a newline. The same would go for variable expansion.

There is a difference between:
Code:
$ set -- hello 'cat dog walk' money elephant
$ echo "$2"
cat dog walk

and
Code:
$ var="hello 'cat dog walk' money elephant"
$ set -- $var
$ echo "$2"
'cat

in the first case there are 4 fields, and no field splitting is performed
in the second case there is field splitting after expansion of the variable "var", which results in 6 fields with the default IFS


--
You could try something like this:
Code:
$ oldIFS=$IFS
$ IFS="
"
$ set -- $(xargs -n1 < file)
$ IFS=$oldIFS
$ echo "$2"
cat dog walk
$


Last edited by Scrutinizer; 09-07-2013 at 01:11 PM..
This User Gave Thanks to Scrutinizer For This Post:
# 10  
Old 09-07-2013
Quote:
Originally Posted by Scrutinizer
That is because in addition to your original problem specification you are using command substitution: $( .. ) which will cause the output of the command to be split into fields according to the IFS variable, which defaults to a space, a TAB and a newline. The same would go for variable expansion.

There is a difference between:
Code:
$ set -- hello 'cat dog walk' money elephant
$ echo "$2"
cat dog walk

and
Code:
$ var="hello 'cat dog walk' money elephant"
$ set -- $var
$ echo "$2"
'cat

in the first case there are 4 fields, and no field splitting is performed
in the second case there is field splitting after expansion of the variable "var", which results in 6 fields with the default IFS


--
You could try something like this:
Code:
$ oldIFS=$IFS
$ IFS="
"
$ set -- $(xargs -n1 < infile2443)
$ IFS=$oldIFS
$ echo "$2"
cat dog walk
$

this worked. thank you so much!!!!
# 11  
Old 09-07-2013
This should work as well:
Code:
IFS="
" set -- $(xargs -n1 < infile2443)
echo "$2"

# 12  
Old 09-07-2013
That will not work, set does not use IFS.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

"set variable with spaces and apostrophe after s"

Hi Guys, I have a variable such that: set x = (Session,Date,Type,Receive Coil Name,Manufacturer,Manufacturer's Model Name) foreach i ($x) echo $i end I would like to read each variable one by one like: Session Date Type Receive Coil Name Manufacturer Manufacturer's Model Name Is... (1 Reply)
Discussion started by: dixits
1 Replies

2. Shell Programming and Scripting

Problem with spaces in the path

Hi all, I have a variable test has the following value assigned.. could you please help on doing cd or ls to the value in the varible ... $echo $test /bdm/sdd/compounds/AD4833XT/requests/clin/Watson_20090420/docs/MHRA\ Comments\ \&\ Responses $cd $test ksh: cd: bad argument count $cd... (3 Replies)
Discussion started by: firestar
3 Replies

3. Shell Programming and Scripting

problem with spaces in filename

I have written a script to run ddrescue on a list of files. #!/bin/bash # # A script to rescue data recursively using ddrescue. srcDir=/damaged/hdd/movies/ #the source directory desDir=/new/hdd/movies/ #the destination directory... (2 Replies)
Discussion started by: colsinc
2 Replies

4. Web Development

[MYSQL] problem with spaces in rows

Hello. I'm not sure how I can get around this, or what I am doing wrong, but I need some help. :) I want to do an select query looking like this: SELECT venue, SUM( amount ) FROM IWD WHERE venue = 'Foxy Hollow' Unfortunately I need to have spaces in the names in these fields, is... (10 Replies)
Discussion started by: noratx
10 Replies

5. UNIX for Dummies Questions & Answers

Problem with White spaces and tabs

Hi All, I am facing issues converting white spaces and tabs together in a file I am reading. Here is the command I am trying: tr -s ' '@ | sort -t@ +1n filename I guess the problem is that it is not converting the tabs to another delimiter. Also, I am supposed to accomplish this only using... (5 Replies)
Discussion started by: sh_kk
5 Replies

6. Shell Programming and Scripting

Problem using egrep: spaces and newline

Hello: I am working in bash and am a newbie. I want to eliminate spaces from strings. Since this is a basic operation, I searched online and implemented the suggestions; however, I am facing a problem here. I have an input file which looks like this: abc defghi jklmno pqrs tuvw xyzabcd... (8 Replies)
Discussion started by: andyu11
8 Replies

7. Shell Programming and Scripting

set tab to 4 spaces in vi

Hi, I want to set my tab lenght to 4 spaces instead of 8. And when i press tab instead of inserting tab it should insert 4 spaces. if i do set ts=4 this set tab=4. But this inserts tab. Say suppose i copy the code from unix to texpad/wordpad.Textpad will interpret tab as 8 spaces.(I can set... (4 Replies)
Discussion started by: pinnacle
4 Replies

8. UNIX for Dummies Questions & Answers

Problem with spaces in directory path

Hi Gurus, I have a requirement. cat /usdd/Sample/"NDDF Plus DB"/"NDDF Descriptive and Pricing"/"NDDF BASICS 3.0"/"Pricing"/1.txt | sed 's/*|*/|/g' | sed 's/^*//'| sed 's/^*//; s/*$//' > temp.txt In unix prompt the above command is reading the file 1.txt and I am... (1 Reply)
Discussion started by: prabhutkl
1 Replies

9. Shell Programming and Scripting

problem with spaces and argument parsing

public class HelloWorld { public static void main(String args) { System.out.println("Welcome, master"); } } and I compiled using javac HelloWorld.java ] Suppose that I execute the following command directly from the shell: java -XX:OnError="gdb - %p" HelloWorld Then it works... (8 Replies)
Discussion started by: fabulous2
8 Replies

10. UNIX for Dummies Questions & Answers

problem with the blank spaces in array

Hi all! i need your help. I'm getting started with this... in need to insert in an array string values. But the thing is that this strings have blank spaces... for example if a want to put "filed1 = " and "field2 = " .... in the array , when i want to print all the fields, it only shows... (4 Replies)
Discussion started by: kamicasse
4 Replies
Login or Register to Ask a Question