Help to change the file with "sed" and "awk"


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help to change the file with "sed" and "awk"
# 1  
Old 03-16-2010
Help to change the file with "sed" and "awk"

Hi experts

I want your help to change the file format to my wanted version, please give me a hand thanks


PHP Code:
$cat file
install pass 
make os pass
make build kernel failed
usb storage pass 
chane to
PHP Code:
| *install* | *make os* | *make build kernel* | *usb storage* |
pass pass failed pass 
# 2  
Old 03-16-2010
Try this straight fwd one:

Code:
awk '{ f=f" | "$NF; $NF="\b"; s=s" | *"$0"*";}END{ print s" |";print f" |"; }' file

# 3  
Old 03-17-2010
Quote:
Originally Posted by dennis.jacob
Try this straight fwd one:

Code:
awk '{ f=f" | "$NF; $NF="\b"; s=s" | *"$0"*";}END{ print s" |";print f" |"; }' file



---------- Post updated at 01:03 AM ---------- Previous update was at 01:01 AM ----------

Quote:
Originally Posted by yanglei_fage
Hi experts

I want your help to change the file format to my wanted version, please give me a hand thanks


PHP Code:
$cat file
install pass 
make os pass
make build kernel failed
usb storage pass 
chane to
PHP Code:
| *install* | *make os* | *make build kernel* | *usb storage* |
pass pass failed pass 

Hi dannis, first, thanks for your help it works I changed my question to

file1
Code:
$cat file1
install pass 
make os pass
make build kernel failed
usb storage pass


file2
Code:
$cat file2
install hung
make os pass
make build kernel failed
usb storage pass

file3
Code:
$cat file3
install hung
make os pass
make build kernel failed
usb storage hung


merge file1 file2 file2 into file4 like
Code:
| date | *install* | *make os* | *make build kernel* | *usb storage* |
| ^| pass | pass | failed | pass | 
| ^| hung | pass | failed | pass | 
| ^| pass | pass | failed | hung |



---------- Post updated at 02:31 AM ---------- Previous update was at 01:03 AM ----------

just re-edit my question

Last edited by yanglei_fage; 03-17-2010 at 06:31 AM..
# 4  
Old 03-17-2010
Something like:
Code:
awk 'BEGIN{print "| date | *install* | *make os* | *make build kernel* | *usb storage* |"}
f!=FILENAME{if(s)print s ;f=FILENAME;s="|^|" $NF "|";next}
{s=s $NF "|"}
END{print s}'  file1 file2 file3

# 5  
Old 03-17-2010
Quote:
Originally Posted by Franklin52
Something like:
Code:
awk 'BEGIN{print "| date | *install* | *make os* | *make build kernel* | *usb storage* |"}
f!=FILENAME{if(s)print s ;f=FILENAME;s="|^|" $NF "|";next}
{s=s $NF "|"}
END{print s}'  file1 file2 file3

Thanks it works, a quick question here, if I dont' know how many file I will merge,(eg:file5 file6 file7 ....) how to deal with it
# 6  
Old 03-17-2010
Quote:
Originally Posted by yanglei_fage
Thanks it works, a quick question here, if I dont' know how many file I will merge,(eg:file5 file6 file7 ....) how to deal with it
To process all the files with names beginning with file:
Code:
awk 'BEGIN{print "| date | *install* | *make os* | *make build kernel* | *usb storage* |"}
f!=FILENAME{if(s)print s ;f=FILENAME;s="|^|" $NF "|";next}
{s=s $NF "|"}
END{print s}' file*

# 7  
Old 03-19-2010
help to merge file with awk or sed

thanks

Last edited by yanglei_fage; 03-19-2010 at 09:08 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Bash script - Print an ascii file using specific font "Latin Modern Mono 12" "regular" "9"

Hello. System : opensuse leap 42.3 I have a bash script that build a text file. I would like the last command doing : print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt where : print_cmd ::= some printing... (1 Reply)
Discussion started by: jcdole
1 Replies

2. UNIX for Dummies Questions & Answers

Using "mailx" command to read "to" and "cc" email addreses from input file

How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address and column 3 contains “cc” e-mail address to include with same email. Sample input file, email.txt Below is an sample code where... (2 Replies)
Discussion started by: asjaiswal
2 Replies

3. Shell Programming and Scripting

Find lines with "A" then change "E" to "X" same line

I have a bunch of random character lines like ABCEDFG. I want to find all lines with "A" and then change any "E" to "X" in the same line. ALL lines with "A" will have an "X" somewhere in it. I have tried sed awk and vi editor. I get close, not quite there. I know someone has already solved this... (10 Replies)
Discussion started by: nightwatchrenba
10 Replies

4. Shell Programming and Scripting

Awk,sed : change every 2nd field ":" to "|"

Hi Experts, I have a string with colon delimited, want 2nd colon to be changed to a pipe. data: 101:8:43:4:72:14:41:69:85:3:137:4:3:0:4:0:9:3:0:3:12:3: I am trying with sed, but can change only 1 occurance: echo "101:8:43:4:72:14:41:69:85:3:137:4:3:0:4:0:9:3:0:3:12:3:" | sed 's/:/|/2'... (5 Replies)
Discussion started by: rveri
5 Replies

5. Post Here to Contact Site Administrators and Moderators

Suggestion: adding two new groups "sed" and "awk"

Majority of the questions are pertaining file/string parsing w.r.t sed or awk It would be nice to have these two as their own sub category under shell-programming-scripting which can avoid lot of duplicate posts. (1 Reply)
Discussion started by: jville
1 Replies

6. Shell Programming and Scripting

how to use "cut" or "awk" or "sed" to remove a string

logs: "/home/abc/public_html/index.php" "/home/abc/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" how to use "cut" or "awk" or "sed" to get the following result: abc abc xyz xyz xyz (8 Replies)
Discussion started by: timmywong
8 Replies

7. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

8. Shell Programming and Scripting

Simplify Bash Script Using "sed" Or "awk"

Input file: 2 aux003.net3.com error12 6 awn0117.net1.com error13 84 aux008 error14 29 aux001.ha.ux.isd.com error12 209 aux002.vm.ux.isd.com error34 21 alx0027.vm.net2.com error12 227 dux001.net5.com error123 22 us008.dot.net2.com error121 13 us009.net2.com error129Expected Output: 2... (4 Replies)
Discussion started by: sQew
4 Replies

9. Shell Programming and Scripting

cat $como_file | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g'

hi All, cat file_name | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g' Can this be done by using sed or awk alone (4 Replies)
Discussion started by: harshakusam
4 Replies

10. UNIX for Dummies Questions & Answers

Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`"

Hi Friends, Can any of you explain me about the below line of code? mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'` Im not able to understand, what exactly it is doing :confused: Any help would be useful for me. Lokesha (4 Replies)
Discussion started by: Lokesha
4 Replies
Login or Register to Ask a Question