Using sed with variables (again!)


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Using sed with variables (again!)
# 1  
Old 09-16-2008
Using sed with variables (again!)

Hi,

I'm trying to use sed to delete the last three lines of a file. I currently have:

Code:
# get the amount of lines in the file
foldernum=`wc -l File_In.txt | cut -c1-8`
# remove the lines in the file
sed "${foldernum}-3,${foldernum}d" File_In.txt > File_Out.txt

I get the error - sed: unknown command

Is there a better way or have I simply got my syntax incorrect.

Cheers.
# 2  
Old 09-16-2008
Another way:

Code:
awk -v var=`wc -l < File_In.txt` 'NR==var-2{exit}1' File_In.txt > File_Out.txt

Regards
# 3  
Old 09-16-2008
Quote:
Originally Posted by Franklin52
Another way:

Code:
awk -v var=`wc -l < File_In.txt` 'NR==var-2{exit}1' File_In.txt > File_Out.txt

Regards
I tried the code above but it didn't trim the last 3 lines of the file.
# 4  
Old 09-16-2008
You need to do the arithmetic separately, sed doesn't know how to subtract. awk does know; do you get an error message or does it just not do what you want? Maybe you need mawk/nawk/gawk/XPG4 awk if your default awk is a really old "traditional" awk.

Code:
foldernum=`wc -l <File_In.txt`  # note use of redirection
limit=`expr $foldernum - 3`
sed -e "$limit",'$d' File_In.txt >File_Out.txt

# 5  
Old 09-16-2008
Quote:
Originally Posted by era
You need to do the arithmetic separately, sed doesn't know how to subtract. awk does know; do you get an error message or does it just not do what you want? Maybe you need mawk/nawk/gawk/XPG4 awk if your default awk is a really old "traditional" awk.

Code:
foldernum=`wc -l <File_In.txt`  # note use of redirection
limit=`expr $foldernum - 3`
sed -e "$limit",'$d' File_In.txt >File_Out.txt

For the awk command I didn't get an error message but it didn't do what I wanted.

However, I've played around with the code you provided and I got it to work accordingly.

Thanks.
# 6  
Old 09-16-2008
Quote:
Originally Posted by Mr_Plow
I tried the code above but it didn't trim the last 3 lines of the file.
It works fine for me, maybe you should use gawk, nawk or /usr/xpg4/bin/awk on Solaris as era mentioned.

Regards
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sed with variables

Im trying to use sed to print value that matches the value in variable and all lines after that. grep "Something" test.txt | sed -e '/{$variable}/,$b' -e 'd' I cant get it work, if I replace the $variable with the value it contains, it works fine... (10 Replies)
Discussion started by: olkkis
10 Replies

2. Shell Programming and Scripting

Using Variables with SED

All I am trying to produce the following in /etc/ssh/sshd_config, # IPv4 only #ListenAddress 0.0.0.0 # IPv4 & IPv6 ListenAddress :: to # IPv4 only ListenAddress <user-entry> ListenAddress <user-entry> # IPv4 & IPv6 #ListenAddress :: The number of user entries can vary. ... (1 Reply)
Discussion started by: miyoung999
1 Replies

3. Shell Programming and Scripting

variables and sed

Is it possible to place a variable in a sed command as such? sed 's/ret_Priv()/$var/' <filename> I am doing this under Bourne. (5 Replies)
Discussion started by: plslakewood
5 Replies

4. UNIX for Dummies Questions & Answers

sed using variables

Hi, I am able to use sed if I hardcode the find and replace values in a shell script. This works: sed -e 's/123v/4567/g' /path/aaa.txt > /path/aaa.txt.tmp If I use a variable, I am not able to use sed command. why? This doesnot work: i=abc j=bk${i} sed -e 's/${i}/${j}/g'... (5 Replies)
Discussion started by: new_learner
5 Replies

5. Shell Programming and Scripting

using variables with sed

I'm trying to get sed to cut and replace using variables, but it doesnt seem to work, when I run this the mod time of the file does get updated. Is my syntax incorrect in the sed command? Thanks #!/usr/bin/ksh #Modify header set -x HEAD=$(cat PBN2CPR1.TXT | awk 'BEGIN { FS = ","... (1 Reply)
Discussion started by: ddurden7
1 Replies

6. Shell Programming and Scripting

Sed variables

HELP!!! I'm keep getting "sed: Function s/PETS/dog cannot be parsed." I have 2 files that list... # cat FILE1.txt dog cat mouse # cat FILE2.txt my pets are PETS I put this into a variable... # A=`cat FILE1.txt` # sed "s/PETS/$A" FILE2.txt > FILE3.txt (5 Replies)
Discussion started by: Zenwork
5 Replies

7. Shell Programming and Scripting

variables in sed

when i do something like substituting a particular thing with a system variable, i am unable to do that expect the varible name getting into that. for ex.. i tried, sed -e 's/date/`date`/g' <if >of but i got date replaced with "`date`" and not with the actual date .. same case happened... (5 Replies)
Discussion started by: sskb
5 Replies

8. UNIX for Dummies Questions & Answers

doing a sed on certain variables

Hi guys, I want to replace certain values with the number 1. But it is also replacing other values which contain the value I want to replace. e.g.: I want to replace ID-INTERNAL with 1, that's no problem but it will also replace ID-INTERNAL-NON-REM with 1-NON-REM I don't want to... (10 Replies)
Discussion started by: seaten
10 Replies

9. Shell Programming and Scripting

doing a sed with variables

Hi, I'm trying to do the following , I have certain variables in a file and then I want to check for these variables in a certain cobol file to see if they contain a certain package if so replace them with value 1 but but that last line is giving problems: # for each variable in SQL file ... (1 Reply)
Discussion started by: seaten
1 Replies

10. UNIX for Dummies Questions & Answers

doing a sed with variables

Hi, I'm trying to do the following , I have certain variables in a file and then I want to check for these variables in a certain cobol file to see if they contain a certain package if so replace them with value 1 but but that last line is giving problems: # for each variable in SQL file ... (1 Reply)
Discussion started by: seaten
1 Replies
Login or Register to Ask a Question