Sponsored Content
Top Forums Shell Programming and Scripting SED 4.1.4 - INI File Change Problem in Variables= in Specific [Sections] (Guru Help) Post 302322447 by JakFrost on Wednesday 3rd of June 2009 08:01:02 PM
Old 06-03-2009
Bug

Quote:
Originally Posted by Franklin52
You can try this with awk. Suppose you want to change the value of the section [supplies_res_6] of ammo_12x76_zhekan with 100, 1.0:
Thanks for the code but I won't be using it or needing it since I found the solution for SED. Your messy code reminded me of something that I did with SED a few years back when I had a similar problem. Your usage of the hard to understand cryptic "f=0" and "f=1" variable reminded me that. Thanks for the reminder though.



SED Solution Remembered and Found! - Hold Space As Variable

The idea is to use the hold space as a boolean variable to hold the line of the section that you are currently inside and then when you find the field in the file that you want to change, you check if you are in the proper section before making any changes to the field.

I used this with a previous problem and I just realized that I had the solution below. This works great and the code is below.

Code:
# Section Find and Save
/^[[:space:]]*\[/ h;

# Variable Line
/^[[:space:]]*%variable%[[:space:]]*=/I {

	# Section Recall
	x;

	# Section Check
	/^[[:space:]]*\[[[:space:]]*%section%[[:space:]]*\]/I {

		# Line Recall
		x;

		# Value Replace
		# Note: Retain same whitespace after replacement except for value.
		s/^([[:space:]]*%variable%[[:space:]]*=[[:space:]]*)(.*)[[:space:]]*$/\1%value%/I;

		# Section Recall
		x;
	};

	# Line Recall
	x;

};

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Parsing file, yaml file? Extracting specific sections

Here is a data file, which I believe is in YAML. I am trying to retrieve just the 'addon_domains" section, which doesnt seem to be as easy as I had originally thought. Any help on this would be greatly appreciated!! I have been trying to do this in awk and mostly bash scripting instead of perl... (3 Replies)
Discussion started by: Rhije
3 Replies

2. Shell Programming and Scripting

Remove sections of a xml file with sed

I've been trying to remove some lines of a xml file that looks like this: <parent> <child>name1</child> <lots_of_other tags></lots_of_other_tags> </parent> <parent> <child>name2</child> <lots_of_other tags></lots_of_other_tags> </parent> <parent> <child>name3</child> ... (5 Replies)
Discussion started by: viniciusandre
5 Replies

3. Shell Programming and Scripting

using sed to replace a specific string on a specific line number using variables

using sed to replace a specific string on a specific line number using variables this is where i am at grep -v WARNING output | grep -v spawn | grep -v Passphrase | grep -v Authentication | grep -v '/sbin/tfadmin netguard -C'| grep -v 'NETWORK>' >> output.clean grep -n Destination... (2 Replies)
Discussion started by: todd.cutting
2 Replies

4. UNIX for Dummies Questions & Answers

Using SED to change a specific word's color?

Ok so all i'm trying to do here is output a file and change the color of a specific word. I can't use grep with color because I need all lines of the file not just lines that match the pattern. I can get this substitution to work but when it displays it shows exactly what i'm putting it rather... (14 Replies)
Discussion started by: MrEddy
14 Replies

5. Shell Programming and Scripting

Change specific occurence with sed

Hello, I have this file. aaa port=1234 time bbb port=2233 name ccc port=4444 name Is there any way with sed to change only the occurence of "port" which comes after section to have as output : (12 Replies)
Discussion started by: rany1
12 Replies

6. UNIX for Dummies Questions & Answers

How to use sed to copy specific lines from a file using shell variables?

hello! I am trying to use sed to copy specific set of lines from a file for which the starting and ending line numbers of the lines to be copied are stored in shell variables. How can i copy those lines? if the input_file is something like this and if the following is the script a=2 b=4... (4 Replies)
Discussion started by: a_ba
4 Replies

7. Shell Programming and Scripting

Trouble with sed and ini file parsing

hi people, i'm having a hard time trying to extract a list of vars delimited by section inside a ini file ... let's consider this ini file : ; config file DESC = "channel synchro TGG01" DMM_VER = DMM23 PATH_FIFO = /users/tgg00/fifo QRT = BTS01.TGG.01.2 MODE_TRACE... (5 Replies)
Discussion started by: odium74
5 Replies

8. Shell Programming and Scripting

sed - String substitution within specified section in ini type file

Hello. I am trying to modify a config file which is in windows *.ini type file. I have found a piece of code here :linux - Edit file in unix using SED - Stack Overflow As I can't make it doing the job , I am trying to find a solution step by step. here a modified sample file : my_sample.ini... (1 Reply)
Discussion started by: jcdole
1 Replies

9. Shell Programming and Scripting

Add character to specific columns using sed or awk and make it a permanent change

Hi, I am writing a shell script where I want that # should be added in all those lines as the first character where the pattern matches. file has lot of functions defined a.sh #!/bin/bash fn a { beautiful evening sunny day } fn b { } fn c { hello world .its a beautiful day ... (12 Replies)
Discussion started by: ashima jain
12 Replies

10. Shell Programming and Scripting

Using sed to change values after a specific string

Hello I have a script that searches a file for a specific string and then changes the nth column after that string. I have searched online for how to do this with sed but have not seemed to find a solution that works for me. I am using bash. Some background info: - Currently I am using awk to... (4 Replies)
Discussion started by: prodigious8
4 Replies
deb-substvars(5)						  dpkg utilities						  deb-substvars(5)

NAME
deb-substvars - Debian source substitution variables SYNOPSIS
substvars DESCRIPTION
Before dpkg-source, dpkg-gencontrol and dpkg-genchanges write their control information (to the source control file .dsc for dpkg-source and to standard output for dpkg-gencontrol and dpkg-genchanges) they perform some variable substitutions on the output file. A variable substitution has the form ${variable-name}. Variable names consist of alphanumerics, hyphens and colons and start with an alphanumeric. Variable substitutions are performed repeatedly until none are left; the full text of the field after the substitution is rescanned to look for more substitutions. After all the substitutions have been done each occurrence of the string ${} (which is not a legal substitution) is replaced with a $ sign. While variable substitution is done on all control fields, some of those fields are used and needed during the build when the substitution did not yet occur. That's why you can't use variables in the Package, Source and Architecture fields. Variable substitution happens on the content of the fields after they have been parsed, thus if you want a variable to expand over multiple lines you do not have to include a space after the newline. This is done implicitly when the field is output. For example, if the variable ${Description} is set to "foo is bar.${Newline}foo is great." and if you have the following field: Description: foo application ${Description} . More text. It will result in: Description: foo application foo is bar. foo is great. . More text. Variables can be set using the -V common option. They can be also specified in the file debian/substvars (or whatever other file is speci- fied using the -T option). This file consists of lines of the form name=value. Trailing whitespace on each line, blank lines, and lines starting with a # symbol (comments) are ignored. Additionally, the following standard variables are available: Arch The current build architecture (from dpkg --print-architecture). source:Version The source package version. source:Upstream-Version The upstream source package version, including the Debian version epoch if any. binary:Version The binary package version (which may differ from source:Version in a binNMU for example). Source-Version The source package version (from the changelog file). This variable is now deprecated as its meaning is different from its function, please use the source:Version or binary:Version as appropriate. Installed-Size The total size of the package's installed files. This value is copied into the corresponding control file field; setting it will modify the value of that field. If this variable isn't set dpkg-gencontrol will use du -k debian/tmp to find the default value. Extra-Size Additional disk space used when the package is installed. If this variable is set its value is added to that of the Installed-Size variable (whether set explicitly or using the default value) before it is copied into the Installed-Size control file field. F:fieldname The value of the output field fieldname (which must be given in the canonical capitalisation). Setting these variables has no effect other than on places where they are expanded explicitly. Format The .changes file format version generated by this version of the source packaging scripts. If you set this variable the contents of the Format field in the .changes file will change too. Newline, Space, Tab These variables each hold the corresponding character. shlibs:dependencyfield Variable settings with names of this form are generated by dpkg-shlibdeps. dpkg:Upstream-Version The upstream version of dpkg. dpkg:Version The full version of dpkg. If a variable is referred to but not defined it generates a warning and an empty value is assumed. FILES
debian/substvars List of substitution variables and values. BUGS
The point at which field overriding occurs compared to certain standard output field settings is rather confused. SEE ALSO
dpkg(1), dpkg-genchanges(1), dpkg-gencontrol(1), dpkg-shlibdeps(1), dpkg-source(1). Debian Project 2009-07-15 deb-substvars(5)
All times are GMT -4. The time now is 12:59 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy