Sponsored Content
Full Discussion: Help with awk command
Top Forums Shell Programming and Scripting Help with awk command Post 302995724 by shivs123in on Tuesday 11th of April 2017 11:08:18 AM
Old 04-11-2017
Help with awk command

Guys, first post be kind! Smilie

Need some guidance here

I plan to edit 3 xml files without opening them (as opening, editing, closing is more prone to errors).

The one I want to edit is with a condition.

I need to update N to Y wherever I see Flag_XYZ_TurnOn in all 3 files. Also I prefer to run it from command line rather than having it in a script.

Example of the pattern:

Before:

Code:
<Name>Flag_XYZ_TurnOn</Name>
<Value>N</Value>

After:
Code:
<Name>Flag_XYZ_TurnOn</Name>
<Value>Y</Value>

I wrote SED commands and it works great in Linux but NOT in Unix

I tried the following sed commands from command line

Code:
sed -i.saved '/Flag_xyz_/{n;s/N/Y/}'   infile_1  infile_2

sed '/Flag_xyz_/{n;s/N/Y/}'   input_file

So as an alternative to sed I tried looking at awk as it is compatible with Unix too. But instead of command line it is making to write a script example below, which am personally not prefering.

Code:
for i in `find . -type f -name "*.xml"`
do
awk '/Flag_xyz_TurnOn/{n=NR+1}NR==n{sub(/>N</,">Y<")}1' $i > /temp/tmp123.xml
cp /temp/tmp123.xml $i
rm /temp/tmp123.xml
done

Anybody can suggest me to write in a better way? So that its a single line command, which i can run from command line to achieve my desired result?

Thanking you in advance.

cheers

Last edited by Scrutinizer; 04-11-2017 at 12:17 PM.. Reason: Additional code tags
 

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

assign a command line argument and a unix command to awk variables

Hi , I have a piece of code ...wherein I need to assign the following ... 1) A command line argument to a variable e.g origCount=ARGV 2) A unix command to a variable e.g result=`wc -l testFile.txt` in my awk shell script When I do this : print "origCount" origCount --> I get the... (0 Replies)
Discussion started by: sweta_doshi
0 Replies

2. Shell Programming and Scripting

awk/sed Command : Parse parameter file / send the lines to the ksh export command

Sorry for the duplicate thread this one is similar to the one in https://www.unix.com/shell-programming-scripting/88132-awk-sed-script-read-values-parameter-files.html#post302255121 Since there were no responses on the parent thread since it got resolved partially i thought to open the new... (4 Replies)
Discussion started by: rajan_san
4 Replies

3. UNIX for Dummies Questions & Answers

Basic awk question...getting awk to act on $1 of the command itself

I have a script problem that I am not able to solve due my very limited understanding of unix/awk. This is the contents of test.sh awk '{print $1}' From the prompt if I enter: ./test.sh Hello World I would expect to see "Hello" but all I get is a blank line. Only then if I enter "Hello... (2 Replies)
Discussion started by: JasonHamm
2 Replies

4. Shell Programming and Scripting

awk command for simple join command but based on 2 columns

input1 a_a a/a 10 100 a1 a_a 20 200 b1 b_b 30 300 input2 a_a a/a xxx yyy a1 a1 lll ppp b1 b_b kkk ooo output a_a a/a 10 100 xxx yyy (2 Replies)
Discussion started by: ruby_sgp
2 Replies

5. Shell Programming and Scripting

awk command in script gives error while same awk command at prompt runs fine: Why?

Hello all, Here is what my bash script does: sums number columns, saves the tot in new column, outputs if tot >= threshold val: > cat getnon0file.sh #!/bin/bash this="getnon0file.sh" USAGE=$this" InFile="xyz.38" Min="0.05" # awk '{sum=0; for(n=2; n<=NF; n++){sum+=$n};... (4 Replies)
Discussion started by: catalys
4 Replies

6. Shell Programming and Scripting

awk command to compare a file with set of files in a directory using 'awk'

Hi, I have a situation to compare one file, say file1.txt with a set of files in directory.The directory contains more than 100 files. To be more precise, the requirement is to compare the first field of file1.txt with the first field in all the files in the directory.The files in the... (10 Replies)
Discussion started by: anandek
10 Replies

7. Shell Programming and Scripting

Multiple command execution inside awk command during xml parsing

below is the output xml string from some other command and i will be parsing it using awk cat /tmp/alerts.xml <Alert id="10102" name="APP-DS-ds_ha-140018-componentFailure-S" alertDefinitionId="13982" resourceId="11427" ctime="1359453507621" fixed="false" reason="If Event/Log Level(ANY) and... (2 Replies)
Discussion started by: vivek d r
2 Replies

8. Shell Programming and Scripting

Pass awk field to a command line executed within awk

Hi, I am trying to pass awk field to a command line executed within awk (need to convert a timestamp into formatted date). All my attempts failed this far. Here's an example. It works fine with timestamp hard-codded into the command echo "1381653229 something" |awk 'BEGIN{cmd="date -d... (4 Replies)
Discussion started by: tuxer
4 Replies
ex(1)							      General Commands Manual							     ex(1)

Name
       ex, edit - text editor

Syntax
       ex [ - ] [ -v ] [ -x ] [ -t tag ] [ -r ] [ +command ] [ -l ] name...
       edit [ ex options ]

Description
       The  editor  is	the  root  of a family of editors: and The editor is a superset of with the most notable extension being a display-editing
       facility.  Display-based editing is the focus of

       The name argument indicates the files to be edited.

Options
       -    Suppresses all interactive-user feedback.  This option is useful in processing editor scripts in command files.

       -v   Equivalent to using rather than

       -t   Equivalent to an initial tag command, that is, editing the file containing the tag and positioning the editor at its definition.

       -r   Used to recover after an editor or system crash.  It recovers by retrieving the last saved version of the named file.  If no  file	is
	    specified, it displays a list of saved files.

       -R   Sets the read-only option at the start.

       +command
	    Indicates  that  the editor should begin by executing the specified command.  If the command is omitted, it defaults to $, positioning
	    the editor at the last line of the first file, initially.  Other useful commands here are scanning patterns of the form  +/pattern	or
	    line numbers.

       -l   Sets up for LISP.  That is, it sets the showmatch and lisp options.  The -x option is available only if the Encryption layered product
	    is installed.

       -x   Causes to prompt for a key. The key is used to encrypt and decrypt the contents of the file. If the file contents have been  encrypted
	    with one key, you must use the same key to decrypt them.

Restrictions
       The command causes all marks to be lost on lines changed and then restored if the marked lines were changed.

       The command does not clear the buffer modified condition.

       The z command prints a number of logical rather than physical lines.  More than a screenful of output may result if long lines are present.

       File input/output errors do not print a name if the command line minus sign (-) option is used.

       There is no easy way to do a single scan ignoring case.

       The editor does not warn you if you place text in named buffers and do not use it before exiting the editor.

       Null characters are discarded from input files, and cannot appear in output files.

Files
       /usr/lib/ex?.?recover	     recover command
       /usr/lib/ex?.?preserve	     preserve command
       /etc/termcap		terminal capabilities
       ~/.exrc			editor startup file
       /tmp/Exnnnnn		editor temporary
       /tmp/Rxnnnnn		named buffer temporary
       /usr/preserve		preservation directory

See Also
       awk(1), ed(1), grep(1), sed(1), vi(1), termcap(5), environ(7)
       "Edit: A Tutorial" and the "Ex Reference Manual" in the
       Supplementary Documents, Volume 1: General User

																	     ex(1)
All times are GMT -4. The time now is 03:08 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy