sed issue


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed issue
# 1  
Old 12-06-2012
sed issue

I'm trying to change a date in a couple of large files using SED. The problem is when I use the -n parameter, it doesn't actually change the file. When I leave out the -n, it sends the whole file to the screen, but it does appear to change it.

The problem is, these files are very large and it would take forever to change it like that. I'm sure it is just an issue with my syntax, but here is what I was trying:

Code:
sed -n 's/20121201/20130101/g' filename

Should this update the existing file? If not, how can I do that?


Moderator's Comments:
Mod Comment Code tags please, see PM.

Last edited by zaxxon; 12-06-2012 at 05:08 PM.. Reason: code tags
# 2  
Old 12-06-2012
sed does not work "in place", not even GNU sed's "-i" works on the same file, it actually creates a copy then replaces the original.
# 3  
Old 12-06-2012
Try:
Code:
sed 's/20121201/20130101/g' filename > filename.new

# 4  
Old 12-06-2012
How can I edit this file then? Can I output the changes to a different filename? I just need to edit the dates, but can't figure it out.
# 5  
Old 12-06-2012
You can edit the same file with a single command of sed:

Code:
 sed -i 's/20121201/20130101/g' filename

The -i flag allow you to do the sequence that you want in the file

And also here you can find useful information about sed:

http://www.gentoo.org/doc/en/articles/l-sed1.xml
# 6  
Old 12-06-2012
No. The command:
Quote:
sed -n 's/20121201/20130101/g' filename
should not modify the file named by filename. This command requests that sed look at every line in filename and to change all occurrences of 20121201 to 20130101, but not to print anything after doing so.

To do what you want portably, try:
Code:
sed 's/20121201/20130101/g' filename > tmp && mv tmp filename

assuming that you're using a shell (like bash, sh, or ksh) that supports this use of &&. I make no claims about whether or not this will work with csh or tcsh.

On some systems you could use:
Code:
sed -i .bak 's/20121201/20130101/g' filename

instead, but not all systems' version of sed support the -i option.
# 7  
Old 12-06-2012
Thanks a bunch.

-i didn't work on my system, but moving it to a new file did work. Thanks so much for your help.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sed issue

I can't get this code to work, could I get some help... sed -i '' "s:${shLogpath1}${cell}:${shLogpath2}${cell}:g" test.txt Any Ideas, I think I need to separate the variables some how? (2 Replies)
Discussion started by: digitalviking
2 Replies

2. Shell Programming and Scripting

sed issue

Hi guys. Can somone advise as to what the problem is with the following sed command? 1) read -p "Please enter new username you wish to replace old: " new_username sed "s/$username/$new_username/" information_file ;; This is one of the case statements included but I'm... (1 Reply)
Discussion started by: jjb1989
1 Replies

3. Shell Programming and Scripting

one more issue last- sed

hi i have following sed command this replaces "** in filename1 with octal value 007 filename2 when i put it in script it wont work but it works from command line my OS is sun OS ---------- Post updated at 06:38 PM ---------- Previous update was at 06:14 PM ---------- i... (10 Replies)
Discussion started by: er_zeeshan05
10 Replies

4. Shell Programming and Scripting

Sed Issue

Hi, I am trying to use 3 sed statements in a shell script, but it get foll error. sed : garbage after command. If I use only two sed statements, the script works well. Is there any restriction for sed usage or is there some catch which I am missing. Sample Script is as follows : ... (3 Replies)
Discussion started by: sameersalve
3 Replies

5. Shell Programming and Scripting

Issue with Sed Command

Hello , I am trying to replace a word :: complete to Failed . work: complete Sed command which i am using is given below :: sed s/work: complete/Failed/g temp1.txt > temp2.txt (Sed command is grabled if i use the above .. because of space which is there between work: and complete. I... (6 Replies)
Discussion started by: raghav1982
6 Replies

6. Shell Programming and Scripting

sed issue

Hi All I'm getting this error while executing a sed script sed: 0602-404 Function /</ i\ File from New Cube: cannot be parsed. sed "/</ i\ File from New Cube: />/ i\ File from Old Cube:" difference1.txt > Difference.txt I've a file like this < Y2008 Dec ..... .... ... 345 I want... (6 Replies)
Discussion started by: Celvin VK
6 Replies

7. Shell Programming and Scripting

Sed Issue....

Can someone help me "port" this to AIX sed? sed '/nas/{n;s/true/false/}' I know it doesn't like the ; but i don't know how else to do it.... never had to sed on an AIX box :D (7 Replies)
Discussion started by: DeviousPete
7 Replies

8. Shell Programming and Scripting

Issue with a sed one liner variant - sed 's/ ; /|/g' $TMP1 > $TMP

Execution of the following segment is giving the error - Script extract:- OUT=$DATADIR/sol_rsult_orphn.bcp TMP1=${OUT}_tmp1 TMP=${OUT}_tmp ( isql -w 400 $dbConnect_OPR <<EOF select convert(char(10), s.lead_id) +'|' + s.pho_loc_type, ";", s.sol_rsult_cmnt, ";", +'|'+ s.del_ind... (3 Replies)
Discussion started by: kzmatam
3 Replies

9. UNIX for Dummies Questions & Answers

SED Issue

Can anyone tell me ...on the below listed command cat /mnt/winbox/list_measurement/ds1c/ds1_f.rome_27A03A 2>> error_log | sed -e '1,3d;s/^/27A03A,/' | sed -e "s#\(.*\)#\1 ,$(date +%Y-%m-%d)#g" > /SBS/ds1_f.rome_27A03A The outcome is this: ,2005-08-29 Forestdale,3:02 am MON AUG 29,... (9 Replies)
Discussion started by: Redg
9 Replies

10. Shell Programming and Scripting

Issue with sed in script

I have a loop in a script that is given me an error but, when I do it on the command line it works perfectly. The sed statement has to use the variables from a file so the file is partitioned correctly. I am running on HP: <Begin error>: + cat /u01/bteam/CNAM/1121/.partition + read line + +... (3 Replies)
Discussion started by: bthomas
3 Replies
Login or Register to Ask a Question