Sponsored Content
Top Forums Shell Programming and Scripting Updating variables using sed or awk Post 302953163 by Corona688 on Tuesday 25th of August 2015 03:07:59 PM
Old 08-25-2015
Perhaps something like this:
Code:
#!/bin/sh

# Setting IFS="%" causes "${*}" to become "arg1%arg2%arg3%arg4".
OLDIFS="$IFS" ; IFS="%"

# arg1%arg2%arg3%arg4 gets split in awk later to A[1]=arg1, A[2]=arg2, A[3]=arg3, A[4]=arg4.
# Line 1 matches A[1] gets arg1, line 2 matches A[2] gets arg2, etc.
awk -F= -v OFS="=" -v S="${*}" 'BEGIN { split(S,A,"%") } ; NR in A { $2=A[NR] } 1' filename > newfilename

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Manipulating awk $variables using sed?

I have been searching around the forums here trying to find a solution to my problem but not getting anywhere but closer to baldness. I have a 20 column pipe "|" seperated text file. The 14th variable doesnt always exist, but will have the format of YYYYMM or YYYY if it does. I need to take... (2 Replies)
Discussion started by: r0sc0
2 Replies

2. Shell Programming and Scripting

using sed on bash variables (or maybe awk?)

Hi all- I've been fooling with this for a few days, but I'm rather new at this... I have a bash variable containing a long string of various characters, for instance: JUNK=this that the other xyz 1234 56 789 I don't know what "xyz" actually is, but I know that: START=he other and ... (2 Replies)
Discussion started by: rev66
2 Replies

3. Shell Programming and Scripting

Accessing Shell Variables in awk or sed

Hello, I wonder if it is possible to pass and use variables from shell environment into sed or awk. I am trying to achieve something similar to the following using sed or awk: var=some_regular_expression grep "$var" filename # Will extract lines from filename The following code,... (3 Replies)
Discussion started by: nasersh
3 Replies

4. Shell Programming and Scripting

awk updating one file with another, comparing, updating

Hello, I read and search through this wonderful forum and tried different approaches but it seems I lack some knowledge and neurones ^^ Here is what I'm trying to achieve : file1: test filea 3495; test fileb 4578; test filec 7689; test filey 9978; test filez 12300; file2: test filea... (11 Replies)
Discussion started by: mecano
11 Replies

5. Shell Programming and Scripting

Using variables within awk/sed commands

Can I use my own variables within awk and sed for example: I've written a while loop with a counter $i and I want to use the value of $i within sed and awk to edit certain lines of text within a data file. I want to use : sed '1s/$/texthere/g' data.csv Like this: sed '$is/$/$age/g' data.csv... (5 Replies)
Discussion started by: mustaine85
5 Replies

6. Shell Programming and Scripting

Updating a line in a large csv file, with sed/awk?

I have an extremely large csv file that I need to search the second field, and upon matches update the last field... I can pull the line with awk.. but apparently you cant use awk to directly update the file? So im curious if I can use sed to do this... The good news is the field I want to... (5 Replies)
Discussion started by: trey85stang
5 Replies

7. UNIX for Dummies Questions & Answers

Updating environment variables

ok, this definitely falls in the n00b category... I'm trying to upgrade Java on my server and just need to update the PATH, CLASSPATH, and JAVA_HOME environment variables. This is what they currently are:... (4 Replies)
Discussion started by: jtennent
4 Replies

8. Shell Programming and Scripting

print pattern between two variables awk sed

I am trying to print text between two variables in a file I have tried the following things but none seem to work: awk ' /'$a'/ {flag=1;next} /'$b'/{flag=0} flag { print }' file and also sed "/$a/,/$b/p" file But none seem to work Any Ideas? Thanks in Advance (5 Replies)
Discussion started by: forumbaba
5 Replies

9. Shell Programming and Scripting

Variables into SED or AWK and multiple commands

Hello I am hoping you may help. I am not sure how to go about this exactly, I know the tools but not sure how to make them work together. I have two SED commands that I would like to run in a shell script. I would like to take the manual input of a user (types in when prompted) to be used... (4 Replies)
Discussion started by: lostincashe
4 Replies

10. UNIX for Dummies Questions & Answers

Use of Variables in a sed/awk script

Hi, After looking at the differents post on this forum, I am convinced that I will benefit from the experience of advanced Unix user on some script I have already done for an aeronautical study. Here is one of them : Step 1 : sed -e "s/??/00/g" Base_Awk.txt > Awk_Cut_00.txt4; sed... (11 Replies)
Discussion started by: Marc_Camoc
11 Replies
KTR(9)							   BSD Kernel Developer's Manual						    KTR(9)

NAME
CTR0, CTR1, CTR2, CTR3, CTR4, CTR5 -- kernel tracing facility SYNOPSIS
#include <sys/param.h> #include <sys/ktr.h> extern int ktr_cpumask; extern int ktr_entries; extern int ktr_extend; extern int ktr_mask; extern int ktr_verbose; extern struct ktr_entry ktr_buf[]; void CTR0(u_int mask, char *format); void CTR1(u_int mask, char *format, arg1); void CTR2(u_int mask, char *format, arg1, arg2); void CTR3(u_int mask, char *format, arg1, arg2, arg3); void CTR4(u_int mask, char *format, arg1, arg2, arg3, arg4); void CTR5(u_int mask, char *format, arg1, arg2, arg3, arg4, arg5); void CTR6(u_int mask, char *format, arg1, arg2, arg3, arg4, arg5, arg6); DESCRIPTION
KTR provides a circular buffer of events that can be logged in a printf(9) style fashion. These events can then be dumped with ddb(4), gdb(1) or ktrdump(8). Events are created and logged in the kernel via the CTRx macros. The first parameter is a mask of event types (KTR_*) defined in <sys/ktr.h>. The event will be logged only if any of the event types specified in mask are enabled in the global event mask stored in ktr_mask. The format argument is a printf(9) style format string used to build the text of the event log message. Following the format string are zero to five arguments referenced by format. Each event is logged with a file name and source line number of the originating CTR call, and a timestamp in addition to the log message. The event is stored in the circular buffer with supplied arguments as is, and formatting is done at the dump time. Do not use pointers to the objects with limited lifetime, for instance, strings, because the pointer may become invalid when buffer is printed. Note that the different macros differ only in the number of arguments each one takes, as indicated by its name. The ktr_entries variable contains the number of entries in the ktr_buf array. These variables are mostly useful for post-mortem crash dump tools to locate the base of the circular trace buffer and its length. The ktr_mask variable contains the run time mask of events to log. The CPU event mask is stored in the ktr_cpumask variable. The ktr_verbose variable stores the verbose flag that controls whether events are logged to the console in addition to the event buffer. EXAMPLES
This example demonstrates the use of tracepoints at the KTR_PROC logging level. void mi_switch() { ... /* * Pick a new current process and record its start time. */ ... CTR3(KTR_PROC, "mi_switch: old proc %p (pid %d)", p, p->p_pid); ... cpu_switch(); ... CTR3(KTR_PROC, "mi_switch: new proc %p (pid %d)", p, p->p_pid); ... } SEE ALSO
ktr(4), ktrdump(8) HISTORY
The KTR kernel tracing facility first appeared in BSD/OS 3.0 and was imported into FreeBSD 5.0. BUGS
Currently there is one global buffer shared among all CPUs. It might be profitable at some point in time to use per-CPU buffers instead so that if one CPU halts or starts spinning, then the log messages it emitted just prior to halting or spinning will not be drowned out by events from the other CPUs. The arguments given in CTRx() macros are stored as u_long, so do not pass arguments larger than size of an u_long type. For example passing 64bit arguments on 32bit architectures will give incorrect results. BSD
November 30, 2008 BSD
All times are GMT -4. The time now is 03:31 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy