Visit Our UNIX and Linux User Community


how to join lines


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers how to join lines
# 1  
Old 09-11-2008
how to join lines

can anyone tell me as "how to join all lines in a file " using a shell script
Actually i have many files in a directory and for each file i want to join all the lines using a shell scrip .

Thanks in advance!!!
# 2  
Old 09-11-2008
This joins a list of files into one line per file in a new file
Code:
while read file
do
      tr -d '\n' < $file
      echo ""
done < list_of_files > newfile

# 3  
Old 09-11-2008
echo " Enter the dir name: [Give full path] "
read dir
cd $dir

for file in `ls`
do
if [ -f $file ]; then # Plz try to check & avoid *.gz , *.out & *.4ge
# and other binary files
echo `cat $file`> $file
fi
done

Last edited by Niroj; 09-11-2008 at 10:09 AM..
# 4  
Old 09-11-2008
That's a Useless Use of ls in Backticks there. You mean

Code:
for file in *

That's also a Useless Use of Cat; or rather, it will replace runs of newlines with a single space, which is kind of borderline; certainly the lines are joines, but spaces are also added. If that's not desired, try

Code:
tr -d '\n' <"$file" >tmp;  mv tmp "$file"

(If your tr doesn't understand \n, try with \012 or a literal newline between the single quotes. It looks weird but it's perfectly valid syntax.)

If you want to replace each newline with a space, that's also easy to do with tr.
# 5  
Old 09-11-2008
ok...Herder of Useless Cats..
cool... I knew the result thats why I suggested this...
Ex.
cat > File
=============
hi era
bye
=========
tr -d '\n' <"File" >tmp; mv tmp "File"
=====
cat file
----------------
hi erabye # Any one need this type of joining.. ??!

================================================
And 2nd one ...
If you think "translating each '\n' char to NULL value; then creating a temp file and then renaming the temp file to acutual file name to make it permanent .. " is faster and better idea..

Then I don't need to say anything...!!

Last edited by Niroj; 09-11-2008 at 11:12 AM..
# 6  
Old 09-12-2008
Depends on the requirements, obviously. If you want spaces then (as hinted) try

Code:
tr '\n' ' ' <File >tmp

Temporary files are obviously a wart, but if this is part of a complex process, the command is probably part of a longer pipeline anyway, and so no temporary file will be needed. If you want a one-liner without a temporary file, try Perl.

Code:
perl -i~ -pe 'y/\n//d' file  # or 'y/\n/ /' if you want to join with spaces

# 7  
Old 09-12-2008
Quote:
Originally Posted by era
Depends on the requirements, obviously. If you want spaces then (as hinted) try

Code:
tr '\n' ' ' <File >tmp

Temporary files are obviously a wart, but if this is part of a complex process, the command is probably part of a longer pipeline anyway, and so no temporary file will be needed. If you want a one-liner without a temporary file, try Perl.

Code:
perl -i~ -pe 'y/\n//d' file  # or 'y/\n/ /' if you want to join with spaces

=======================
What a greate idea..as if anyone Smilie know these...?!!
Plese don't make thse silly comments..

Then tell me why using cat is useless...

echo `cat $file`> $file ?



 

Previous Thread | Next Thread
Test Your Knowledge in Computers #878
Difficulty: Medium
Memory allocation is less critical in a real-time operating system (RTOS) than in other operating systems.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Join Lines

Hi how do I join files like below in script. Thanks, Ashan there are may line like this in the file. zone name DR_TMP_A_sev1_3eA vsan 200 pwwn 50:00:09:73:f0:16:35:08 pwwn c0:50:76:08:6e:dc:00:16 zone name DR_TMP_A_SVR2_3eA vsan 200 pwwn 50:00:09:73:f0:16:35:08 pwwn... (4 Replies)
Discussion started by: ashanabey
4 Replies

2. UNIX for Dummies Questions & Answers

Join lines in a file????

Hello UNIX gurus, I am new to the world of UNIX. Hopefully I am submitting my question at the right forum. Here is my dilemma - I have a file with contents like this - "line1","Hello","World","Today is a wonderful day","yes it is" "line2","Hello","World","Today is a beautiful day","oh... (8 Replies)
Discussion started by: foolishbar
8 Replies

3. Shell Programming and Scripting

Join multiple lines

Hi I have a source file ( written i C ) where a funtion call is spread over multiple lines, for example : func( a, b, c ); I want this to be joined into one single line : func(a,b,c); How can this be done with awk and sed ? Regards. Hench (2 Replies)
Discussion started by: hench
2 Replies

4. Shell Programming and Scripting

join lines in file

I have a file like this: --------------------------------------------------------------- 26 00:04:48,440 --> 00:04:51,440 I don't know why he can't just do the Great Apache Flaming Arrow Act. 27 00:04:52,440 --> 00:04:54,839 Didn't you tell him to use the gopher snake? 28... (1 Reply)
Discussion started by: thailand
1 Replies

5. Shell Programming and Scripting

join two lines

I want to join this two lines but only when after him I have nothing or a comma Yes, I know Jonesy, and I'll give him about one more minute. this two lines must become Yes, I know Jonesy, and I'll give him about one more minute. thank you very much (11 Replies)
Discussion started by: thailand
11 Replies

6. Shell Programming and Scripting

join 2 lines

hi all i have sample and i need script to do this /dev/xxx oracle test /dev/sap 9999 000 88 99 i need the out put like this /dev/xxx oracle test /dev/sap 9999 000 88 99 can any one provide me with an idea to solve this problem (8 Replies)
Discussion started by: maxim42
8 Replies

7. Shell Programming and Scripting

Join the lines

Hi All, Currently, the output looks like this: hdisk0 queue_depth:3 hdisk1 queue_depth:3 hdisk2 queue_depth:1 hdisk3 queue_depth:1 I need to change the format to look like this: hdisk0 queue_depth:3 hdisk1 queue_depth:3 hdisk2 queue_depth:1 (8 Replies)
Discussion started by: Beginer0705
8 Replies

8. Shell Programming and Scripting

join lines

input1 x x input2 y x x z join input1 input2>>output ouput x x (2 Replies)
Discussion started by: repinementer
2 Replies

9. Shell Programming and Scripting

Join Every 5 Lines With $ Symbol

Hi All, I have output like this in one file. IFName: aust00m1.mis.amat.com ] ObjID: 5eceea48-0d59-71dd-1512-9887a1f10000 IFAlias: Dest: AMNA austkchr1-ser0/0/0:0.315 Type: FRASI CID: DHEC.559128 IFDescription: ATM9/1/0.315-atm subif Status: Normal IFName: aust00m1.mis.amat.com ] ObjID:... (3 Replies)
Discussion started by: ntgobinath
3 Replies

10. Shell Programming and Scripting

join two lines together

Hi, I have a file with on one line a uid, and on the next line a date. I am trying to make the to into one line. Here's an example: koppx 20031125 kraan 20031119 sarox 20031107 And this is what i want it to be: koppx;20031125 kraan;20031119 sarox;20031107 I have been trying... (4 Replies)
Discussion started by: tine
4 Replies

Featured Tech Videos