File formating help needed.


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers File formating help needed.
# 1  
Old 06-10-2010
File formating help needed.

I have a file called vm.cfg .

content of file.

Code:
acpi = 1
apic = 1
builder = 'hvm'

How would i write a script which will add
boot = 'd' at 3rd line.

For example.
after running the script the file should be like below.
Code:
acpi = 1
apic = 1
boot = 'd'
builder = 'hvm'

I dont want to edit the file if boot = 'd' is already present in the file.
# 2  
Old 06-10-2010
Code:
V="'d'"; awk -v v=$V 'NR==3 && $0 !~ /^boot/ {print "boot =",v}1' vm.cfg > tmpfile
mv tmpfile vm.cfg

This User Gave Thanks to zaxxon For This Post:
# 3  
Old 06-10-2010
thanks zaxxon for solving my problem . I would highly appreciate if you explain the logic behind the code.
# 4  
Old 06-10-2010
Defining the single quotes outside awk since I was unable to escape them inside; double quotes around the single quotes to preserve them as text.
Code:
V="'d'"

Handing over the shell variable $V to awk with the name v.
Code:
awk -v v=$V

If NumberRecords (ie. the line number) equals 3
Code:
'NR==3

logical and
Code:
&&

At the beginning of the lline of input is not the regular pattern ^boot (^ stands in this case for the beginning of the line)
Code:
$0 !~ /^boot/

Then do following command, ie. printing the string "boot =" and the value of the variable v
Code:
{print "boot =",v}

Also for all other lines awk finds, it shall just do it's default behaviour, which is printing. Shortest form to write is just a single number, in this case a 1.
Code:
1'

And this is just the input file and the redirection after parsing into a new file
Code:
vm.cfg > tmpfile

So in the case the patter is not found (boot...) in row 3, it will just do the 1, which is print.
If it is not found in row 3, it will print it.

Last edited by zaxxon; 06-10-2010 at 10:24 AM.. Reason: typo and logic correction
This User Gave Thanks to zaxxon For This Post:
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help with ... Formating the file using awk

I have a file like below position1 0 7802 7802 0 client1 - - position1 8 8032 8032 0 client1 ... (7 Replies)
Discussion started by: manas_ranjan
7 Replies

2. Shell Programming and Scripting

File formating

I need to create a fixed width file based on the column lengths. lets assume I have six(this may be dynamic) fields each are of different length column1=6 #size of the column column2=3 column3=2 column4=3 column5=4 column6=5 I tried below code snippet but it is not working echo... (4 Replies)
Discussion started by: gvkumar25
4 Replies

3. UNIX for Beginners Questions & Answers

File formating help

Hi all, I am having the file below I need that as below Thanks, Arun (12 Replies)
Discussion started by: arunkumar_mca
12 Replies

4. UNIX for Beginners Questions & Answers

File formating with lines

Hi All, Need to modify a file basically join the extra line to one I am having a file like below And would like to make it as below . (4 Replies)
Discussion started by: arunkumar_mca
4 Replies

5. Shell Programming and Scripting

Help in formating a file with field separator

hi thanks a lot But pls help me if my input file is the below format: Name priya 2010-09-21 10:43:49 TEXT ID 1 hi TEXT ID 2 how TEXT ID 3 r TEXT ID 4 u Name2 priya2 2010-09-21 10:43:49 TEXT ID 1 hi1 TEXT ID 2 how1 TEXT ID 3 r1 (4 Replies)
Discussion started by: bha148
4 Replies

6. Shell Programming and Scripting

Help in formating a txt file

Pls help in formatting a txt file using shell scripting Input file format: Name priya 2010-09-21 10:43:49 TEXT ID 1 hi TEXT ID 2 how TEXT ID 3 r TEXT ID 4 u Output required: name priya hi how r u (4 Replies)
Discussion started by: bha148
4 Replies

7. Shell Programming and Scripting

File formating (sed command)

I am new ot unix. Is there one or two lines of command (sed may be) to format a file. My source is.. <tag1> <tag2> <datatag1> data1 </datatag1> <datatag2> data2 </datatag2> <datatag3> data3 </datatag3> <datatag4> data1 </datatag3> </tag2> </tag1> (2 Replies)
Discussion started by: reachsam11
2 Replies

8. Shell Programming and Scripting

file formating in Perl

Hi, I am new to unix , I have a requirement for formating the input file and generate the output file as per the downstream requirement .. My application receiving a text input file having 4 field and my application need to check each field and if some value of a field is blank ..then it need... (1 Reply)
Discussion started by: julirani
1 Replies

9. Shell Programming and Scripting

File formating question.

Hi, I have a file with only data 1 row: AA#?BB#?CC#?DD Assume '#?' is the delimiter, i want the output in another file to be: AA BB CC DD Pls let me know if this is possible by sed ? Thanks in advance. (3 Replies)
Discussion started by: smc3
3 Replies

10. UNIX for Dummies Questions & Answers

Help required on file formating

I have two files file1 and file2 as shown below: file1: name nameabc bcd nameabcdefg file2: age age1111 age2345 age6743 I have pasted one file on the other with the delimiter "|" and the resulttant file is: name|age nameabc|age1111 bcd|age2345 nameabcdefg|age6743 (1 Reply)
Discussion started by: udiptya
1 Replies
Login or Register to Ask a Question