sed & awk help...

Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed & awk help...
# 1  
Old 10-31-2001
sed & awk help...

I have a question. Take the following statement

awk -F\| '{print $21}' testfile | sed 's/\//\\/g' > newfile

This will grab the 21st column of a | delimited text file, replace the forward slashes "/" , with back slashes "\", and redirect the output newfile. Now, how do I get the output reinserted back into the 21st column of the original file?

# 2  
Old 10-31-2001
Use "cut" to create a file with columns 1 through 20. Use it again to create a file with columns 22 on. Use "paste" to connect all three files.
# 3  
Old 10-31-2001
OK, I have the 3 separate files, I'm just confused on how to use paste to paste them back together. The man page on paste is confusing. Got any examples?
# 4  
Old 10-31-2001
I'll illustrate by example:

$ cat a
This is line one of a
This is line two of a
This is line three of a
This is line four of a
$ cat b
This is line one of b
This is line two of b
This is line three of b
This is line four of b
$ cat c
This is line one of c
This is line two of c
This is line three of c
This is line four of c
$ paste -d '|' a b c > d
$ cat d
This is line one of a|This is line one of b|This is line one of c
This is line two of a|This is line two of b|This is line two of c
This is line three of a|This is line three of b|This is line three of c
This is line four of a|This is line four of b|This is line four of c

# 5  
Old 11-04-2001
Hey Shimb0,
As an alternative, you could just use modified awk statement from what you have currently. The below is an example:

awk -F'|' '\
gsub(/\//, "\\", $21)
print $0
}' OFS='|'

Make sure the version of awk you are using supports gsub. On Sun, you will have to use the one in /usr/xpg4/bin. I don't know about other platforms.

The -F sets the field separator to |. gsub replaces / with \ in field 21 only. print $0 will print the entire record with the modified field 21, which is what you want I think. OFS will set the field separator in your output to | as well.

You may have to direct this output to a temp file and then mv the temp file over the original, like this:

awk -F'|' '\
gsub(/\//, "\\", $21)
print $0
}' OFS='|' original.txt > tmp.txt
mv tmp.txt original.txt
rm tmp.txt

Hope this helps,
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to print & and \n while replacing with sed/awk?

string="din&esh\nisgood" File.txt: the name is sed "s#\#${string}#g" File.txt Output am getting: the name is dinesh is good Expected output: the name is din&esh\nisgood The input string is dynamic it will be keep on changing am able to handle & by placing \& in the string.. (5 Replies)
Discussion started by: dineshaila
5 Replies

2. Shell Programming and Scripting

sed & awk Book

Hi Experts, I am studying SED and AWK text processing commands with an E-book. I am not satisfied with the way of explanation and examples given by them. I would like you guys to suggest me the Best book for SED and AWK to become good in this utility. Thanks in Advance (1 Reply)
Discussion started by: linuxrulez
1 Replies

3. Shell Programming and Scripting

Awk & sed query for output

Hello, I have a file. its content are like below. mdn:87439842 imsi:23082038203 Ctime:12082010 01:20:10 mdn:9324783783 imsi:402349823322 Ctime: 12072010 01:20:10 mdn:87439842 imsi:23082038203 Ctime: 23072010 01:20:10 mdn:87439842 imsi:23082038203 Ctime:18072010 01:20:10 mdn:87439842... (3 Replies)
Discussion started by: Sanket11
3 Replies

4. UNIX for Dummies Questions & Answers

awk & sed

Hi, Can anyone let me know the difference between awk and sed utilities in Unix? Many thanks. (2 Replies)
Discussion started by: venkatesht
2 Replies

5. Shell Programming and Scripting

SED/AWK file read & manipulation

I have large number of data files, close to 300 files, lets say all files are same kind and have extension .dat , each file have mulitple lines in it. There is a unique line in each file containing string 'SERVER'. Right after this line there is another line which contain a string 'DIGIT=0',... (4 Replies)
Discussion started by: sal_tx
4 Replies

6. Shell Programming and Scripting

Sed & awk programming

Hi all, can anyone have sed & awk programming that to learn it easier.. (1 Reply)
Discussion started by: gk2009
1 Replies

7. UNIX for Dummies Questions & Answers

Pattern matching New to Sed & Awk

Hello, Despite reading the Pattern Matching chapter in the O'Reilly Sed & Awk book several times and looking at numerous examples, I cannot seem to get any kind of conditional script to work in my awk scripts! I am able to do the basic awk and grep script to capture the data but when I do with... (0 Replies)
Discussion started by: pg55
0 Replies

8. Shell Programming and Scripting

sed & awk

Hi. I'm going to learn scripting and i have the following topics on the list: sed, awk, shell scripting, perl. My question is, whehter i should learn sed and awk? Aren't this tools outdated? Although i see that GNU upgrade it's versions of these tools from time to time. And, the next... (9 Replies)
Discussion started by: kukuruku
9 Replies

9. Shell Programming and Scripting

New to Sed & Awk

How do I grab the first 10 characters of a line and append it to another empty file? (7 Replies)
Discussion started by: xgringo
7 Replies

10. Shell Programming and Scripting

awk & sed problem

Hello, I am new to shell scripting. I want to optimize my one of the script. I have one file and i want to remove selected zones for domains from that file.In this file i have almost 3500 zones for domains.Sample data for the file.... named.backup... (0 Replies)
Discussion started by: nrbhole
0 Replies
Login or Register to Ask a Question