\n have to make a newline forever?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting \n have to make a newline forever?
# 1  
Old 02-12-2010
\n have to make a newline forever?

I'm trying to make a little script, but I have a problem...

I'm trying to sed a list of files made with a ls > filename.txt...

Two variables (or i may call them constant because they are fixed values Smilie):
ststr1 and ststr2

I want to
Code:
sed s/"$ststr1"/"$ststr2"/g filename.txt > listofsqlcommands.txt

The problem is that in ststr2 there is a string like "into table xxxxxx field terminated by ',' lines terminated by '\n' (col1, col2, col3 etc. etc.);"...

I can't change that because these files are created on windows and BY DESIGN when u create a text file with any method u get a newline at the end of file... :X

So, when i create the file with the list of sql command which have to insert the data of every file listed in filename.txt

filename.txt
Code:
 filename1
 filename2
 filename3...

listofsqlcommands.txt
Code:
 insert filename1 data into
 insert filename2 data into
 insert filename3 dat....

I get this result:
Code:
 
insert blah blah... ...lines terminated by '
' (col1, col2, col3...);

It's possible to made it like:
Code:
 
insert blah blah... ...lines terminated by '\n' (col1, col2, col3...);

????????

To make it simple, it's possible when sed a file that contains \n to avoid that the output file redirected contains a REAL newline????

Thx to everyone and sorry for my terrible way of speaking... Smilie

Last edited by zaxxon; 02-12-2010 at 10:49 AM.. Reason: use code tags please, ty
# 2  
Old 02-12-2010
Maybe silly..., but have you tried to convert your .txt file using dos2ux or similar before any further processing?
# 3  
Old 02-12-2010
You could try double-escaping the \n to make it interpret it as a literal backslash...

Code:
ststr2=$(sed 's/\\n/\\\\n/g' <<< "$ststr2")

On the other hand, I think strings like
Code:
lines terminated by '
'

are actually valid, albeit ugly Smilie

Last edited by Corona688; 02-12-2010 at 11:37 AM..
# 4  
Old 02-12-2010
Thx all for the suggest...
I try right now...

P.S. Ugly but short and functional? What's the matter... Better than long and heavy... Ops! and beautiful obviously... Smilie
# 5  
Old 02-12-2010
I think you misunderstood me, I agree with that sentiment, to a point. Smilie Actually, you might want to convert all backslashes into double-backslashes to prevent sed from eating them. You should also escape forward slashes in case there's a forward slash in ststr2, that could bomb your script. And do that for ststr1 too.

Code:
ststr2=$(sed 's/\\/\\\\/g;s/\//\\\//g' <<< "$ststr2")
ststr1=$(sed 's/\//\\\//g' <<< "$ststr1")

Ugh, that almost looks like ASCII art... Too bad there's no way I know of to just tell sed not to escape anything in the input string, that'd make this easy. Or if there is a way, my sed knowledge isn't strong enough to find it.

Last edited by Corona688; 02-12-2010 at 11:59 AM..
# 6  
Old 02-12-2010
Great!
Corona688 you are a lifesaver! Although your code has to be refined like this:

Code:
ststr2=$(sed 's/\\n/\\n/g' <<< "$ststr2")

so the result in the file are now:

Code:
 
insert blah blah... ...lines terminated by '\n' (col1, col2, col3...);

With your original code there was a '\\n'...

Now i have to understand fully the final code so i can better comprenhend sed tricking in future scenarios... Smilie

P.S. I have to mantain the text format because i don't want to add future problems, my outfile is destined to feed batch processing in mysql and i can't miss ever a single char... Smilie

Thx

Last edited by maxlamax; 02-12-2010 at 11:57 AM.. Reason: P.S. Added for avoid another post
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Forever -w option

I am trying to use the forever command. I can get it to work if I do not use the w option to watch for changes and cause an automatic restart on a change to the contents of the directory being watched. I would really like to use the watch option. Is this option fully implemented? here is an... (4 Replies)
Discussion started by: barrygordon
4 Replies

2. Red Hat

Failed dependencies loop forever

Hello All, I was trying to install one rpm and it failed due to missing dependencies, when I try to look at the dependencies and try to install them it is asking for 100+ dependencies, did any one ever face this problem? how can we fix this? rpm -ivh /var/tmp/erlang-R15B-02.1.el6.x86_64.rpm... (0 Replies)
Discussion started by: lovesaikrishna
0 Replies

3. Programming

pthread_cond_timedwait relocks forever

looking in pthread's source code I can see that as an epilogue both pthread_cond_timedwait and pthread_cond_wait will try to relock the mutex by means of __pthread_mutex_cond_lock. Does this mean that any of them both could eventually block forever if the mutex is never again available after... (4 Replies)
Discussion started by: ramestica
4 Replies

4. IP Networking

valid_lft forever preferred_lft forever <-- what does this mean?

Just looking at my ethernet interface.. I see this response... what does this mean...? ipconfig... lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft... (0 Replies)
Discussion started by: jimmyc
0 Replies

5. Linux

I want to mount my disk forever

Hi guys! I've just mounted my drive in fstab: /dev/sdb /myfolder ext3 defaults 0 0 and rebooted linux. I've got severel failers during booting process and also I can't login as root first time: login: root password:root incorrect login login:user password: user ... (1 Reply)
Discussion started by: Junior Admin
1 Replies

6. UNIX for Dummies Questions & Answers

how can i make sar command run forever ?

Hello all i found out about the sar command but when looking in the man pages there is no way to make sar working for ever .. only with some kind of interval . like sar 2 30 . my question is can i just run sar for ever ? (5 Replies)
Discussion started by: umen
5 Replies

7. Solaris

user password forever

Hi I am very new for Solaris, I want to make some users' passwords never expired. My ssytem kernel is: 5.8 # uname -a SunOS sspfs_svr 5.8 Generic_117000-01 sun4u sparc SUNW,Netra-240 Could you make some advice? Thanks (5 Replies)
Discussion started by: xramm
5 Replies

8. Programming

msgrcv pending forever !!!

When I am using msgrcv to get a message from a queue, in case of msgsnd some error, the msgrcv thread will waiting forever. Is there some way that I can specify a time out value for this queue ? just let msgrcv wait for some time, if no message comes during this time slot, msgrcv just return... (3 Replies)
Discussion started by: Yun Gang Chen
3 Replies

9. AIX

AIX 4.3.3 takes forever to log in

Hi all, my RS/6k 7043 150 with aix 4.3.3 takes FOREVER to log in. When I power the machine on, the boot process procedes normally and I get 2 short beeps (which I don't recall hearing before) and then I get the login window. If I log in, as root, say, the machine goes to its usual blue screen... (3 Replies)
Discussion started by: Jwoollard
3 Replies
Login or Register to Ask a Question