Print pipe separated list as line by line in Korn Shell


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Print pipe separated list as line by line in Korn Shell
# 1  
Old 10-21-2011
Print pipe separated list as line by line in Korn Shell

Korn Shell in AIX 6.1

I want to print the below shown pipe (|) separated list line by line.
Code:
line=es349889|nhb882309|ts00293|snh03524|bg578835|bg37900|rnh00297|py882201|sg175883
for i in line
do
  echo "Hello $line "
done

I wanted to execute the above for loop. But i can't even set the value for variable line.

When i try to set, i am getting the below error.
Code:
#line=es349889|nhb882309|ts00293|snh03524|bg578835|bg37900|rnh00297|py882201|sg175883
ksh: sg175883:  not found
ksh: py882201:  not found
ksh: rnh00297:  not found
ksh: bg37900:  not found
ksh: bg578835:  not found
ksh: snh03524:  not found
ksh: ts00293:  not found
ksh: nhb882309:  not found

Question1. Why am i getting the above error (not found) ?

Question2. How can I print the pipe (|) separated list line by line?

Last edited by Franklin52; 10-22-2011 at 10:53 AM.. Reason: Please use code tags for data and code samples, thank you
# 2  
Old 10-21-2011
Put it in quotes.

Code:
STR="a|b|c|d|e"

Otherwise, it will assume they're pipes between commands.

To print them one per line:

Code:
STR="a|b|c|d|e"
OLDIFS="$IFS"
IFS="|"
printf "%s\n" $STR
IFS="$OLDIFS"

Changing the special IFS variable to "|" makes unquoted strings split on |, so $STR becomes a b c d e which, fed into printf "%s\n", prints each string on its own line.

Then you set IFS back to normal because you probably don't want it as | all the time.
This User Gave Thanks to Corona688 For This Post:
# 3  
Old 10-28-2011
You are genius Corona. I can't believe this was done without a loop.
# 4  
Old 10-28-2011
Code:
str="es349889|nhb882309|ts00293"
echo "$str" | tr '|' '\n'

--ahamed
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Reading a file line by line and print required lines based on pattern

Hi All, i want to write a shell script read below file line by line and want to exclude the lines which contains empty value for MOUNTPOINT field. i am using centos 7 Operating system. want to read below file. # cat /tmp/d5 NAME="/dev/sda" TYPE="disk" SIZE="60G" OWNER="root"... (4 Replies)
Discussion started by: balu1234
4 Replies

2. Shell Programming and Scripting

sed command to replace a line in a file using line number from the output of a pipe.

Sed command to replace a line in a file using line number from the output of a pipe. Is it possible to replace a whole line piped from someother command into a file at paritcular line... here is some basic execution flow.. the line number is 412 lineNo=412 Now i have a line... (1 Reply)
Discussion started by: vivek d r
1 Replies

3. Shell Programming and Scripting

[Solved] How to refer more than 9 command line inputs for a scripts in korn shell?

Hi all, I have a script which should take more than 9 command line inputs while running. Likescript.sh a s d f g h j j k l o p i u y t r e w Now in the script if I have to access one of the input which is at position after 9, in this case say 'p' then how can I do that? echo $12 will not work... (15 Replies)
Discussion started by: pat_pramod
15 Replies

4. Shell Programming and Scripting

Use less pipe for grep or awk sed to print the line not include xx yy zz

cat file |grep -v "xx" | grep -v "yy" |grep -v "zz" (3 Replies)
Discussion started by: yanglei_fage
3 Replies

5. Shell Programming and Scripting

Korn Shell script to insert at specific line

Hi, I am trying to put together a Korn Shell script to insert at a specific line. The system we use is SunOS 5.10 I can get the line number by using:- num=`sed -n '/export ENV/=' ./tmp.file` Not getting much headway using the above variable's value to insert - export SYBASE=/opt/sybase15... (5 Replies)
Discussion started by: aj8200
5 Replies

6. Shell Programming and Scripting

delete new line character ( - ) , korn shell

Hi guys , i need help so bad on this issue.. Basically i have to delete the line continuation symbol of first column variable and add the truncated part of that word in next line to first line. here i written sample 3 lines but originally i have bunch of lines in that file. client1_day- ... (3 Replies)
Discussion started by: chrismorgan
3 Replies

7. Shell Programming and Scripting

how to convert a line to columns, separated by | (pipe)

Hi, Plz help. input line 1;20100403;400|2;20100403;4|3;20290903;400|4;20290903;0|5;20290903;0|9;20100304;0|10;20100304;0|11;20100402;0|18;20100304;0 expected output 1;20100403;400 2;20100403;4 3;20290903;400 4;20290903;0 5;20290903;0 9;20100304;0 10;20100304;0 11;20100402;0... (4 Replies)
Discussion started by: suresh3566
4 Replies

8. Shell Programming and Scripting

Append line that does not contain pipe to it previous line

Hi All, I have a file which contains data as below When we see no pipe character in the line. append those lines to the previous line with pipe character till we get the next line with pipe character with ~(concat with ~) Input file looks like: 1080530944|001|john.l.bonner|Acknowledge|CN... (11 Replies)
Discussion started by: ainuddin
11 Replies

9. Shell Programming and Scripting

To print a specific line in Shell or awk.

Hi, I want to echo the 15th line from a file named as abc.txt, also i want to echo only the values in that line not the line number. Thanks in advance:) (4 Replies)
Discussion started by: tushar_tus
4 Replies

10. Shell Programming and Scripting

Miniature Shell - IO Redirection and Pipe line filters

hi, I was trying to write a miniature shell (ie, command line interpreter) to implement the features like 'IO Redirection' and 'Pipe line fileters'. Can anyone help me with sample shell sript to implement the above features. cheers supong (2 Replies)
Discussion started by: supong
2 Replies
Login or Register to Ask a Question