grep sed


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers grep sed
# 8  
Old 11-07-2005
OK, I understand the idea. Is there a way for me to use the record number that was previously entered by the user (the code in my last post)?


Here's what I just tried, but it completely overwrote the file with a blank file.
Code:
sed -e '${number}d' phonebook > tmp
mv temp phonebook
chmod 755 phonebook

I would like to completely remove the record and put the new data in its place.

Thanks,
Eric
# 9  
Old 11-07-2005
Quote:
Originally Posted by ericelysia
Code:
sed -e '${number}d' phonebook > tmp
mv temp phonebook
chmod 755 phonebook

I dont know whether the >tmp is typo in the post or you actually did it.

Or did you mean mv tmp phonebook ?

And why the chmod ?

vino
# 10  
Old 11-07-2005
Yes, that was a typo.

I used chmod before when removing records, so I was under the impression that it would be similar.

Eric
# 11  
Old 11-07-2005
So I gather that you still have the problem.

It could be with the quotes you are using.

Try

Code:
sed -e "${number}d" phonebook > tmp

From man sh

Code:
       Enclosing  characters  in  single quotes preserves the literal value of
       each character within the quotes.  A single quote may not occur between
       single quotes, even when preceded by a backslash.

       Enclosing  characters  in  double quotes preserves the literal value of
       all characters within the quotes, with the exception of $,  `,  and  \.
       The  characters  $  and  `  retain  their special meaning within double
       quotes.  The backslash retains its special meaning only  when  followed
       by one of the following characters: $, `, ", \, or <newline>.  A double
       quote may be quoted within double quotes by preceding it with  a  back-
       slash.

vino
# 12  
Old 11-08-2005
The following does work:
Code:
# Remove the record with the record number using sed.
sed -e "${number}d" phonebook > tmp
mv tmp phonebook
chmod 755 phonebook


# Add the fields back into the file.
echo "$name:$address:$city:$state:$zipCode:$phoneNumber" >> phonebook


Is the original record that I remove is record 33, is there a way to add the fields back into the file as record 33?

The changed record is getting appended to the end of the file.

Thanks,
Eric
# 13  
Old 11-08-2005
If the record number is 33

Code:
sed -n -e '1,32p' phonebook > tmp
echo "Record # 33" >> tmp
sed -n -e '33,$p' phonebook >> tmp

mv tmp phonebook

# 14  
Old 11-08-2005
Is there a way to use the record number that is input by the user?

I initially was thinking:

Code:
sed -n -e '1,${number - 1}p' phonebook > tmp

But I am thinking this works like C++ or Java. I assume this is not right, because I do not see any arithmetic commands in this book that I have.

Thanks,
Eric
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sed and awk usage to grep a pattern 1 and with reference to this grep a pattern 2 and pattern 3

Hi , I have a file where i have modifed certain things compared to original file . The difference of the original file and modified file is as follows. # diff mir_lex.c.modified mir_lex.c.orig 3209c3209 < if(yy_current_buffer -> yy_is_our_buffer == 0) { --- >... (5 Replies)
Discussion started by: breezevinay
5 Replies

2. UNIX for Dummies Questions & Answers

Help with sed/grep

Hello Everyone! I'm kind of new to parsing and would like extract a partial part of my nmap scan output so I can convert it to csv/excel: My current file has two types of lines like this: Nmap scan report for dns1 (1.1.1.1) Nmap scan report for dns2 (2.2.2.2) Nmap scan report for 3.3.3.3 ... (3 Replies)
Discussion started by: SarahS
3 Replies

3. Shell Programming and Scripting

Help with sed/grep

Hi, I have a file with reoccurring patterns and I want extract the 3rd line after the match, then delete another pattern from that third line. For example the file is in the following format: Hello Name: Abc Number: 123 Hello Name: FQE Number: 543 This occurs more than 100... (4 Replies)
Discussion started by: wsn
4 Replies

4. Linux

sed and grep

I am stranded with a problem. Please solve. How will you remove blank lines from a file using sed and grep? ( blank line contains nothing or only white spaces). I run the below commands of sed and grep but grep isn't giving output as desired. Why? sed '/^*$/d' blank grep -v "^*$" blank... (3 Replies)
Discussion started by: ravisingh
3 Replies

5. Shell Programming and Scripting

sed/tr/grep help

So I have a html file with a bunch of words inside tags and I need to extract just the words, and I'm not sure exactly what the best way to do this is. The format is as follows: <tr> <td>word 1</td> <td>word 2</td> </tr> And all I want to extract is the 'word 2'. First I tried... (3 Replies)
Discussion started by: flightskoo
3 Replies

6. Shell Programming and Scripting

help with SED + GREP

HI all, i have a line in a file it contains Code: one;two_1_10;two_2_10;two_3_10;three~ now i need to get the output as Code: one;two_1_abc_10;two_2_abc_10;two_3_abc_10;three~ ( 1 should be replaced with 1_abc for two__abc_10 , and one more thing the number of occurances of... (6 Replies)
Discussion started by: 2001.arun
6 Replies

7. UNIX for Dummies Questions & Answers

sed or grep?

hello everybody! I have a html file which is not properly formatted meaning that the whole content is in one line. I want to to cut out certain parts of that file. Those parts are between ' #" ' and ' " ' and always start with ' sec_ ' and after the ' sec_ ' any number of characters and ' _... (2 Replies)
Discussion started by: MastaFue
2 Replies

8. UNIX for Dummies Questions & Answers

Grep or Sed

Hi All, I have created a bourne script that basically wants to split a file up in to different parts. I have this working if the file has all the information on different lines but if it doesn't then it doesn't work. i.e. If this is the file hello 12345 good bye 6789 I could grep all the... (5 Replies)
Discussion started by: jazz8146
5 Replies

9. Shell Programming and Scripting

using sed to grep

I have a file that contains many instances of double dollar signs. I want to use sed to get the first occurrence. for example, given the following data. #Beginning of file AB 34 $$ AB $$ AB 98 $$ I only want to pull out: AB 34 $$ (1 Reply)
Discussion started by: wxornot
1 Replies

10. UNIX for Dummies Questions & Answers

SED and it used with | and grep

I am really lost I don't know what this line does. Please help I'm very lost. Thanks in advance. cat CPROGRAMS.c |sed 's// /g'|tr ' ' '\012' |grep '' |sed 's/^*/ /' |grep '($'|sort -u|tr -d "("` (4 Replies)
Discussion started by: Lem2003
4 Replies
Login or Register to Ask a Question