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;
};
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)
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)
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)
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)
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)
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)
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)
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)
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)
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
LEARN ABOUT DEBIAN
deb-substvars
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)