Sponsored Content
Top Forums Shell Programming and Scripting Replace string of a file with a string of another file for matches using grep,sed,awk Post 303026449 by Paras Pandey on Wednesday 28th of November 2018 04:51:07 AM
Old 11-28-2018
Replace string of a file with a string of another file for matches using grep,sed,awk

I have a file comp.pkglist which mention package version and release . In 'version change' and 'release change' line there are two versions 'old' and 'new' Version Change: --> Release Change: -->

Code:
cat comp.pkglist 
Package list:  nss-util-devel-3.28.4-1.el6_9.x86_64 
Version Change: 3.28.4 --> 3.36.0 
Release Change: 1.el6_9 --> 1.el6 

Package list:   tzdata-2018e-3.el6.noarch 
Version Change: 2018e --> 2018g 
Release Change: 3.el6 --> 1.el6

for every package name I need to search in /tmp directory and replace it`s version from old version to new version and old release to new release:

Code:
grep -ri -n tzdata /tmp/. 
/tmp/core.pkglist:578:package tzdata                  2018e 3.el6    arch noarch  

sed -i '578s/2018e/2018g/' /tmp/core.pkglist // To replace '2018e by 2018g in 578th line.

How can I make it work for all packages in the comp.pkglist file to replace it`s old version to new version and old release to new release in any file under the directory /tmp.

The script should :
1) Run a loop with inputs as the name of the package in the comp.pkglist.
2) It should then grep for that package name in the /tmp directory to know which file contains the package.
Code:
grep -ri -n tzdata /tmp/. /tmp/core.pkglist:578:package tzdata                  2018e 3.el6    arch noarch

3) Then it should replace old version/old release of the same package with new version.
Code:
 sed -i '578s/2018e/2018g/' /tmp/core.pkglist


Last edited by RudiC; 11-28-2018 at 07:38 AM.. Reason: Changed ICODE to CODE tags.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sed, grep, awk, regex -- extracting a matched substring from a file/string

Ok, I'm stumped and can't seem to find relevant info. (I'm not even sure, I might have asked something similar before.): I'm trying to use shell scripting/UNIX commands to extract URLs from a fairly large web page, with a view to ultimately wrapping this in PHP with exec() and including the... (2 Replies)
Discussion started by: ropers
2 Replies

2. Shell Programming and Scripting

Using sed to replace a string in file with a string in a variable that contains spaces

Hi, i call my shell like: my_shell "my project name" my script: #!/bin/bash -vx projectname=$1 sed s/'PROJECT_NAME ='/'PROJECT_NAME = '$projectname/ <test_config_doxy >temp cp temp test_config_doxy the following error occurres: sed s/'PROJECT_NAME ... (2 Replies)
Discussion started by: vivelafete
2 Replies

3. Shell Programming and Scripting

How to find a certain string in a file and replace it with a value from another file using sed/awk?

Hi Everyone, I am new to this forum and new to sed/awk programming too !! I need to find particular string in file1(text file) and replace it with a value from another text file(file2) the file2 has only one line and the value to be replaced with is in the second column. file 1: (assert (=... (21 Replies)
Discussion started by: paramad
21 Replies

4. Shell Programming and Scripting

replace (sed?) a single line/string in file with multiple lines (string) from another file??

Can someone tell me how I can do this? e.g: Say file1.txt contains: today is monday the 22 of NOVEMBER 2010 and file2.txt contains: the 11th month of How do i replace the word NOVEMBER with (5 Replies)
Discussion started by: tuathan
5 Replies

5. Shell Programming and Scripting

replace (sed?) a string in file with multiple lines (string) from variable

Can someone tell me how I can do this? e.g: a=$(echo -e wert trewt ertert ertert ertert erttert erterte rterter tertertert ert) How do i replace the STRING with $a? I try this: sed -i 's/STRING/'"$a"'/g' filename.ext but this don' t work (2 Replies)
Discussion started by: jforce
2 Replies

6. Shell Programming and Scripting

sed or awk to replace a value in a certain line from another file containing a string

Hi experts, In my text file I have the following alot of lines like below. input.k is as follows. 2684717 -194.7050476 64.2345581 150.6500092 0 0 2684718 -213.1575623 62.7032242 150.6500092 0 0 *INCLUDE $# filename... (3 Replies)
Discussion started by: hamnsan
3 Replies

7. Shell Programming and Scripting

sed or awk command to replace a string pattern with another string based on position of this string

here is what i want to achieve... consider a file contains below contents. the file size is large about 60mb cat dump.sql INSERT INTO `table1` (`id`, `action`, `date`, `descrip`, `lastModified`) VALUES (1,'Change','2011-05-05 00:00:00','Account Updated','2012-02-10... (10 Replies)
Discussion started by: vivek d r
10 Replies

8. Shell Programming and Scripting

Help with Passing the Output of grep to sed command - to find and replace a string in a file.

I have a file example.txt as follows :SomeTextGoesHere $$TODAY_DT=20140818 $$TODAY_DT=20140818 $$TODAY_DT=20140818I need to automatically update the date (20140818) in the above file, by getting the new date as argument, using a shell script. (It would even be better if I could pass... (5 Replies)
Discussion started by: SriRamKrish
5 Replies

9. Shell Programming and Scripting

Replace string in XML file with awk/sed with string from another

Sorry for the long/weird title but I'm stuck on a problem I have. I have this XML file: </member> <member> <name>TransactionID</name> <value><string>123456789123456</string></value> </member> <member> <name>Number</name> ... (9 Replies)
Discussion started by: cozzin
9 Replies

10. Shell Programming and Scripting

Replace all string matches in file with unique random number

Hello Take this file... Test01 Ref test Version 01 Test02 Ref test Version 02 Test66 Ref test Version 66 Test99 Ref test Version 99 I want to substitute every occurrence of Test{2} with a unique random number, so for example, if I was using sed, substitution would be something... (1 Reply)
Discussion started by: funkman
1 Replies
FSG(1)									FSG								    FSG(1)

NAME
FSG - manual page for FSG lsb_release v2.0 SYNOPSIS
lsb_release [OPTION]... DESCRIPTION
FSG lsb_release v2.0 prints certain LSB (Linux Standard Base) and Distribution information. With no OPTION specified defaults to -v. OPTIONS
-v, --version Display the version of the LSB specification against which the distribution is compliant. -i, --id Display the string id of the distributor. -d, --description Display the single line text description of the distribution. -r, --release Display the release number of the distribution. -c, --codename Display the codename according to the distribution release. -a, --all Display all of the above information. -s, --short Use short output format for information requested by other options (or version if none). -h, --help Display this message. FILES
If the installation is LSB compliant, the "/etc/lsb-release" file should contain the LSB_VERSION field. The value of the field should be a colon separated list of supported module versions indicating the LSB specification modules to which the installation is compliant. If the installation is not compliant, the above field should not be present. Optional fields are DISTRIB_ID, DISTRIB_RELEASE, DISTRIB_CODENAME, DISTRIB_DESCRIPTION and can be used to override information which is parsed from the "/etc/distrib-release" file. If the "/etc/lsb-release.d" directory exists, it is searched for filenames which are taken as additional module-version strings to add to LSB_VERSION. The "/etc/distrib-release" file contains a description line which is parsed to get information (especially on currently non-LSB compliant systems). The required line style is: "Distributor release x.x (Codename)" Where Distributor can be a couple of words, but then concatenated (i.e. Linux Foo BarLinux Linux -> FooBarLinux), x.x starts with a digit followed by any non-blank characters, Codename will also be concatenated (blanks cleanup only). release may not be used as a keyword in DISTRIB_DESCRIPTION if you don't want to override "/etc/distrib-release" data. Notice: To support the Debian distributions' lack of information (see "/etc/debian_version" file) some have been directly added into the lsb_release script. EXAMPLES
If the "/etc/lsb-release" file contains: LSB_VERSION="core-2.0-ia64:core-2.0-noarch" DISTRIB_DESCRIPTION="I enjoy using my distrib" and the "/etc/lsb-release.d" directory contains: graphics-2.0-ia64 graphics-2.0-noarch and the "/etc/foobar-release" file contains: My Linux Distrib release 1.0RC4 (TryIt) Then the results of various options will be: $ ./lsb_release --all LSB Version: core-2.0-ia64:core-2.0-noarch:graphics-2.0-ia64:graphics-2.0-noarch Distributor ID: MyDistrib Description: I enjoy using my distrib Release: 1.0RC4 Codename: TryIt $ ./lsb_release -a -s 1.0 MyDistrib "I enjoy using my distrib" 1.0RC4 TryIt If the "/etc/lsb-release" file is absent (indicating this is not an LSB compliant distribution), the result will be: $ ./lsb_release -a LSB Version: n/a Distributor ID: MyDistrib Description: My Linux Distrib release 1.0RC4 (TryIt) Release: 1.0RC4 Codename: TryIt REPORTING BUGS
Report bugs at http://bugs.linuxbase.org. Please include a complete, self contained example that will allow the bug to be reproduced, and say which version of lsb_release you are using. COPYRIGHT
Copyright (C) 2000, 2002, 2004 Free Standards Group, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICU- LAR PURPOSE. Originally written by Dominique MASSONIE. FSG lsb_release v2.0 June 2014 FSG(1)
All times are GMT -4. The time now is 04:05 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy