Sponsored Content
Full Discussion: Awk replacement problem
Top Forums Shell Programming and Scripting Awk replacement problem Post 302467247 by Chubler_XL on Thursday 28th of October 2010 05:45:33 PM
Old 10-28-2010
Your first attempt works if "\n" is a literal string within your file:
Code:
$ cat test1
one two|\nmore
another line
done|\n
$ awk '{ sub(/\|\\n/, "\\n"); print }' test1
one two\nmore
another line
done\n

But I think you probably want to remove a pipe character from the end of any line (correct?):
Code:
$ cat testfile
one two three|
no pipe
done|
$ awk '{ sub(/\|$/, ""); print }' testfile
one two three
no pipe
done


Last edited by Chubler_XL; 10-28-2010 at 06:54 PM..
This User Gave Thanks to Chubler_XL For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Awk variable replacement

I have a function awkvarrep() { awk -F'|' '$1~/$1/{printf "%-10s %-30s %-15s %-30s %-15s\n", $2,$3,$4,$5,$6}' testfile } I'm calling it by this VARREP=XYZ awkvarrep $VARREP since i'm passing $VARREP to the awkvarrep() function I want to use this with $1 but it dosen't seem to be... (5 Replies)
Discussion started by: iAm4Free
5 Replies

2. Shell Programming and Scripting

AWK String replacement

I have an xml file with following tags <NewTag>value123</xyz> <NewTag>value321</abcd> I have to replace the values in between the tags with some value ( VAL1/VAL2) but the thing the ending tag can be any thing, for this i need a awk command currently i am using this but it... (5 Replies)
Discussion started by: subin_bala
5 Replies

3. Shell Programming and Scripting

perl as awk replacement in a script.

Hey all, Im trying to write a script on windows, which Im not too familiar with. Im generally a bash scripting guy but am using perl for this case. My question is... I have this exact output: 2 Dir(s) 6,380,429,312 bytes free and I just need to get the number out... (4 Replies)
Discussion started by: trey85stang
4 Replies

4. UNIX for Dummies Questions & Answers

awk pattern replacement

Hi I'm a newbie in unix and I'm having trouble in creating a script. I want to search for a pattern '_good' and insert new lines that contains '_bad', '_med', '_fail' while also ensure that the line contains _good is removed here some of the data UPDATE SCHOOL SET GRADE =... (1 Reply)
Discussion started by: sexyTrojan
1 Replies

5. Shell Programming and Scripting

Awk replacement

Hi all, I need help in replacing awk with sed for the below. 1 ) cat list | awk -F" |," '/MATH/ {sub(/]*/,"",$3); print $3}' Eg: file : list Sno Subno Name 1 SUB1 ENG 2 SUB2 MATH 2) Eg:result Total No of Students: 2 Sno ID Sub ------------------ 1 ... (3 Replies)
Discussion started by: priyam
3 Replies

6. Shell Programming and Scripting

awk replacement problem

hi i am using awk for first time so i am having issue is it the correct way of using Y here is variable which i fetch using grep from file awk -v X={$Y} { if ($0 ~ /X/ ) { sub (out.*/,"out1",$0) } print 0 }, filename > temp when i look into temp file i dont see any replacement... (9 Replies)
Discussion started by: xyzstar
9 Replies

7. Shell Programming and Scripting

awk's gsub variable in replacement

I been trying to figure out how to use element of array as a replacement pattern. This works as I expected: $ echo "one two three" | awk '{ gsub(/wo/,"_BEG_&_END_",$2); print }' one t_BEG_wo_END_ three $ echo "one two three" | awk '{ tmp="foo"; gsub(/wo/,"_BEG_" tmp "_END_",$2);... (5 Replies)
Discussion started by: mirni
5 Replies

8. Shell Programming and Scripting

Incomplete replacement/substitution awk

Hi! (I'm just a newbie in awk & bash scripts) I have a script which replaces one column from an input file with a specified one from the same file. The input and the desired output files are shown below. ~ cat input.file random text Fe 1.33 23.23 3.33 C 21.03 23.23 3.33 Cu 0.00 ... (2 Replies)
Discussion started by: radudownload
2 Replies

9. Shell Programming and Scripting

Text replacement with awk or sed?

Hi guys, I worked for almost a half-day for the replacement of some text automatically with script. But no success. The problem is I have hundred of files, which need to be replaced with some new text. It's a painful work to work manually and it's so easy to do it wrong. For example, I... (2 Replies)
Discussion started by: liuzhencc
2 Replies

10. UNIX for Beginners Questions & Answers

sed or awk Replacement/Addition

Hi, I have a big text file with similar data as below and need the text as in output using awk or sed. any help is greatly appreciated. Input: City=Chicago Elden street >>> reservedBy = business 1 >>> reservedBy = business 2 >>> reservedBy = business 3 City=Dallas Elm street >>>... (5 Replies)
Discussion started by: tech_frk
5 Replies
PIPE(2) 						      BSD System Calls Manual							   PIPE(2)

NAME
pipe -- create descriptor pair for interprocess communication SYNOPSIS
#include <unistd.h> int pipe(int fildes[2]); DESCRIPTION
The pipe() function creates a pipe (an object that allows unidirectional data flow) and allocates a pair of file descriptors. The first descriptor connects to the read end of the pipe; the second connects to the write end. Data written to fildes[1] appears on (i.e., can be read from) fildes[0]. This allows the output of one program to be sent to another pro- gram: the source's standard output is set up to be the write end of the pipe; the sink's standard input is set up to be the read end of the pipe. The pipe itself persists until all of its associated descriptors are closed. A pipe whose read or write end has been closed is considered widowed. Writing on such a pipe causes the writing process to receive a SIGPIPE signal. Widowing a pipe is the only way to deliver end-of-file to a reader: after the reader consumes any buffered data, reading a widowed pipe returns a zero count. The generation of the SIGPIPE signal can be suppressed using the F_SETNOSIGPIPE fcntl command. RETURN VALUES
On successful creation of the pipe, zero is returned. Otherwise, a value of -1 is returned and the variable errno set to indicate the error. ERRORS
The pipe() call will fail if: [EFAULT] The fildes buffer is in an invalid area of the process's address space. [EMFILE] Too many descriptors are active. [ENFILE] The system file table is full. SEE ALSO
sh(1), fork(2), read(2), socketpair(2), fcntl(2), write(2) HISTORY
A pipe() function call appeared in Version 6 AT&T UNIX. 4th Berkeley Distribution February 17, 2011 4th Berkeley Distribution
All times are GMT -4. The time now is 07:58 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy