awk can't modify the input file ??


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting awk can't modify the input file ??
# 1  
Old 04-27-2010
awk can't modify the input file ??

Hi *

I've just wanted to ask you if it's possible to modify the input file by using awk.

Let me explain what I need:

I need to change the value $4 from "defaults" to "nodev" in my text file. I've tried to use a string function called "sub" and it works. But I can't figure it out how to change this in my input file ("myfile.txt").

Code:
root@localhost: cat myfile.txt|grep root
/dev/sysvg/root    /   ext3    defaults    1 1

root@localhost: awk '/root/ { sub(/defaults/, "nodev");print } myfile.txt

I know, it can be done by sed command, but I really need to know if it's possible by awk as well.

Thanks in advance
# 2  
Old 04-27-2010
Code:
awk '/root/ { sub(/defaults/, "nodev");print > "myfile.txt"  } myfile.txt

# 3  
Old 04-27-2010
Thanks for you quick response

I know how to redirect the output of this command to the input file. When I use your command above it'll overwrite the whole input file. I just need to overwrite $4 in this file which is mount option "defaults" and only for root filesystem.

myfile.txt="/etc/fstab"
# 4  
Old 04-27-2010
Code:
awk '/root/ { sub(/defaults/, "nodev") } {print > "myfile.txt"} myfile.txt

# 5  
Old 04-27-2010
Great ! Thanks

It works. Could you please explain me why it didn't work without "{ print > "myfile.txt" }".
# 6  
Old 04-27-2010
This code is executed for all the lines in the input file
Code:
{ print > "myfile.txt" }

# 7  
Old 04-27-2010
OK. now it's all clear to me. Thanks
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Sed, awk or another bash command to modify string with the content of another file

Hello everybody, I would like modify some strings using sed or another command line with the content file. For example: - {fqdn: "server-01" , ip: "server-01"} - {fqdn: "server-02" , ip: "server-02"} - {fqdn: "server-03" , ip: "server-03"} - {fqdn: "server-04" , ip: "server-04"} My... (4 Replies)
Discussion started by: dco
4 Replies

2. Shell Programming and Scripting

Use while loop to read file and use ${file} for both filename input into awk and as string to print

I have files named with different prefixes. From each I want to extract the first line containing a specific string, and then print that line along with the prefix. I've tried to do this with a while loop, but instead of printing the prefix I print the first line of the file twice. Files:... (3 Replies)
Discussion started by: pathunkathunk
3 Replies

3. Shell Programming and Scripting

awk to reformat output if input file is empty, but not if file has data in it

The below awk improved bu @MadeInGermany, works great as long as the input file has data in it in the below format: input chrX 25031028 25031925 chrX:25031028-25031925 ARX 631 18 chrX 25031028 25031925 chrX:25031028-25031925 ARX 632 14... (3 Replies)
Discussion started by: cmccabe
3 Replies

4. UNIX for Dummies Questions & Answers

awk - Rename output file, after processing, same as input file

I have one input file ABC.txt and one output DEF.txt. After the ABC is processed and created output, I want to rename ABC.txt to ABC.orig and DEF to ABC.txt. Currently when I am doing this, it does not process the input file as it cannot read and write to the same file. How can I achieve this? ... (12 Replies)
Discussion started by: High-T
12 Replies

5. Shell Programming and Scripting

Modify text file using awk

I have text file with lines as shown here. Each row has 11 columns separated by tab. In each row, i want to split the 8th column such that the output should look like shown below. Here value in the 9th column is DP value and in the 10th column is MQ value followed by the values after resource.EFF=.... (15 Replies)
Discussion started by: mehar
15 Replies

6. Shell Programming and Scripting

Modify the file with awk,sed or perl

Hi All, I need help from any of you.Would be so thankful for your help. I/P DDDD,1045,161,1557,429,1694,800,1911,1113,2460,1457,2917> 1609,3113,1869,3317,2732,3701,3727,4132,5857,5107> 9004,6496 DDDD,1125,157,1558,429,1694,800,1911,1117,2432,1444,2906>... (2 Replies)
Discussion started by: Indra2011
2 Replies

7. Shell Programming and Scripting

Modify an XLS file with Awk

Hello, I have 2 files. One has a list of serial numbers: 12345_7 2345_9 35454 4759:1 PEP8794 The other is an excel file, with multiple columns, separated by tab: 12345_7 ... ... .. .. .. .. .. 2345_9 ... ... .. .. .. .. .. 35454 ... ... .. .. .. .. .. 4759:1 ...... (4 Replies)
Discussion started by: ad23
4 Replies

8. Shell Programming and Scripting

awk- reading input file twice

Hello, I've been trying to come up with a solution for the following problem; I have an input file with two columns and I want to print as an output the first column without any changes but for the second column, I want to divide it by its last value. Example input: 1 9 2 10 3 11 4 12 5... (14 Replies)
Discussion started by: acsg
14 Replies

9. Shell Programming and Scripting

AWK Script to convert input file(s) to output file

Hi All, I am hoping someone can help me with some scripting I need to complete using AWK. I'm trying to process multiple fixed files to generate one concatenated fixed file in a standard format. The Input file is:- aaaa bbbbb ccccc 1 xxxx aaa bbb aaaa bbbbb ccccc 2 abcd aaa CCC... (9 Replies)
Discussion started by: jason_v_brown
9 Replies

10. Shell Programming and Scripting

modify file using awk

I have a file, a.asc which is generated from a shell script: -----BEGIN PGP MESSAGE----- Version: PGP 6.5.8 qANQR1DBwE4DR5PN6zVjZTcQA/9z5Eg94cwYdTnC7v+JUegQuJwHripqnyjFrEs/ejzKYCNmngbHHmf8V4K3uFkYyp74aFf+CdymA030RKs6ewOwkmqRW19oIXCgVe8Qmfg+/2KTq8XN =0QSP -----END PGP MESSAGE----- I want... (12 Replies)
Discussion started by: nattynatty
12 Replies
Login or Register to Ask a Question