![]() |
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.
|
|
google unix.com
|
|||||||
| Forums | Register | Forum Rules | Links | Albums | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts and shell scripting languages here. |
More UNIX and Linux Forum Topics You Might Find Helpful
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Building Full-Text Search Applications with Oracle Text | iBot | Oracle Updates (RSS) | 0 | 04-06-2008 05:10 AM |
| Text file manipulation | Ezy | UNIX for Dummies Questions & Answers | 4 | 02-25-2008 01:15 PM |
| Text Manipulation. | Icepick | Shell Programming and Scripting | 4 | 02-25-2008 04:18 AM |
| Text file manipulation | svannala | UNIX for Dummies Questions & Answers | 5 | 01-20-2006 07:01 PM |
| shell script : text manipulation (easy quesiton) | champion | Shell Programming and Scripting | 3 | 07-01-2002 03:10 AM |
![]() |
|
|
LinkBack | Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
||||
|
text manipulation
Hi, i have a file like this below, and it my have n no. of lines. Moderator gave me a solution with awk, but it was working only for the first 2 lines because awk has a limitation. can anyone give me the solution, thank you
INPUT FILE: 1081 "WPCW 19 - CW/AM1, WPCB 40 - FAMN/CORNER, WPCB-DT1 50 - FAMN/CORNER, " W35AW - Various Shopping Pgms W41CF - TBN W47CV - TBN WLLS-LP 49 - AM1 WATCH WPXI 11 N & WPIX 11 CW 1082 "WPCW 19 - CW/AM1, WTRF-DT2 32 - F/MY, WPCB 40 - FAMN/CORNER, " "WKBS-DT1 46 - FAMN/CORNER, WKBS 47 - FAMN/CORNER, WPCB-DT1 50 - FAMN/CORNER" W45BT - FAMN/CORNER W47CV - TBN WLLS-LP 49 - AM1 WATCH WPXI 11 N & WPIX 11 CW WATCH WPGH 53 F & WWCP 08 F 1086 "WPCW 19 - CW/AM1, WFPT-DT3 28 - V-ME, WTRF-DT2 32 - F/MY, WPCB 40 - FAMN/CORNER," "WKBS-DT1 46 - FAMN/CORNER, WKBS 47 - FAMN/CORNER," "WPCB-DT1 50 - FAMN/CORNER, WGPT-DT3 54 - V-ME" W35AW - Various Shopping Pgms W47CV - TBN WATCH WPXI 11 N & WPIX 11 CW WATCH WPGH 53 F & WWCP 08 F OUTPUT FILE should be like this: 1081WPCW 19 - CW/AM1, WPCB 40 - FAMN/CORNER, WPCB-DT1 50 - FAMN/CORNER, "W35AW - Various Shopping PgmsW41CF - TBN W47CV - TBN WLLS-LP 49 - AM1 WATCH WPXI 11 N & WPIX 11 CW 1082WPCW 19 - CW/AM1, WTRF-DT2 32 - F/MY, WPCB 40 - FAMN/CORNER, " "WKBS-DT1 46 - FAMN/CORNER, WKBS 47 - FAMN/CORNER, WPCB-DT1 50 - FAMN/CORNER" W45BT - FAMN/CORNER W47CV - TBN WLLS-LP 49 - AM1 WATCH WPXI 11 N & WPIX 11 CW WATCH WPGH 53 F & WWCP 08 F 1086WPCW 19 - CW/AM1, WFPT-DT3 28 - V-ME, WTRF-DT2 32 - F/MY, WPCB 40 - FAMN/CORNER,""WKBS-DT1 46 - FAMN/CORNER, WKBS 47 - FAMN/CORNER,""WPCB-DT1 50 - FAMN/CORNER, WGPT-DT3 54 - V-ME" W35AW - Various Shopping Pgms W47CV - TBN WATCH WPXI 11 N & WPIX 11 CWWATCH WPGH 53 F & WWCP 08 F |
|
||||
|
Hi, thanks for the reply, each line should start with a number like 1081 and all the lines of text should be joined till next number 1082.
so output should be like 1081WPCW 19 - CW/AM1, WPCB 40 - FAMN/CORNER, WPCB-DT1 50 - FAMN/CORNER, "W35AW - Various Shopping PgmsW41CF - TBN W47CV - TBN WLLS-LP 49 - AM1 WATCH WPXI 11 N & WPIX 11 CW 1082WPCW 19 - CW/AM1, WTRF-DT2 32 - F/MY, WPCB 40 - FAMN/CORNER, " "WKBS-DT1 46 - FAMN/CORNER, WKBS 47 - FAMN/CORNER, WPCB-DT1 50 - FAMN/CORNER" W45BT - FAMN/CORNER W47CV - TBN WLLS-LP 49 - AM1 WATCH WPXI 11 N & WPIX 11 CW WATCH WPGH 53 F & WWCP 08 F |
|
|||||
|
Quote:
space character first double-quote Also, are all starting prefixes four digits? Is there a range of numbers? i.e. >1000 and <2000 ? |
|
|||||
|
script:
Code:
> cat conv_form
#! /bin/bash
#conv_form
ifile=file1
ofile=file9
rm $ofile 2>/dev/null
first=0
while read zf
do
fourc=$(echo "$zf" | cut -c1-4)
if [ $fourc -gt 1 ] 2>/dev/null
then
#output prior data (if any) skipping first pass thru file
if [ $first -gt 0 ]
then
echo "$hold_var">>$ofile
echo " ">>$ofile
fi
first=1
#clear variables
hold_var=$(echo "$zf")
else
hold_var=$(echo "$hold_var" "$zf")
fi
done <$ifile
#output prior data (if any) from where fell out of loop
echo "$hold_var">>$ofile
>cat file9 1081 "WPCW 19 - CW/AM1, WPCB 40 - FAMN/CORNER, WPCB-DT1 50 - FAMN/CORNER, " W35AW - Various Shopping Pgms W41CF - TBN W47CV - TBN WLLS-LP 49 - AM1 WATCH WPXI 11 N & WPIX 11 CW 1082 "WPCW 19 - CW/AM1, WTRF-DT2 32 - F/MY, WPCB 40 - FAMN/CORNER, " "WKBS-DT1 46 - FAMN/CORNER, WKBS 47 - FAMN/CORNER, WPCB-DT1 50 - FAMN/CORNER" W45BT - FAMN/CORNER W47CV - TBN WLLS-LP 49 - AM1 WATCH WPXI 11 N & WPIX 11 CW WATCH WPGH 53 F & WWCP 08 F 1086 "WPCW 19 - CW/AM1, WFPT-DT3 28 - V-ME, WTRF-DT2 32 - F/MY, WPCB 40 - FAMN/CORNER," "WKBS-DT1 46 - FAMN/CORNER, WKBS 47 - FAMN/CORNER," "WPCB-DT1 50 - FAMN/CORNER, WGPT-DT3 54 - V-ME" W35AW - Various Shopping Pgms W47CV - TBN WATCH WPXI 11 N & WPIX 11 CW WATCH WPGH 53 F & WWCP 08 F |
|
||||
|
i will try that, the output seems to be exactly what i wanted but i dont need space & doube quotes in between 1081 "WPCW
output should be like this: 1081WPCW 19 - CW/AM1, WPCB 40 - FAMN/CORNER, WPCB-DT1 50 - FAMN/CORNER, W35AW - Various Shopping Pgms W41CF - TBN W47CV - TBN WLLS-LP 49 - AM1 WATCH WPXI 11 N & WPIX 11 CW 1082WPCW 19 - CW/AM1, WTRF-DT2 32 - F/MY, WPCB 40 - FAMN/CORNER, WKBS-DT1 46 - FAMN/CORNER, WKBS 47 - FAMN/CORNER, WPCB-DT1 50 - FAMN/CORNER W45BT - FAMN/CORNER W47CV - TBN WLLS-LP 49 - AM1 WATCH WPXI 11 N & WPIX 11 CW WATCH WPGH 53 F & WWCP 08 F 1086WPCW 19 - CW/AM1, WFPT-DT3 28 - V-ME, WTRF-DT2 32 - F/MY, WPCB 40 - FAMN/CORNER,WKBS-DT1 46 - FAMN/CORNER, WKBS 47 - FAMN/CORNER,WPCB-DT1 50 - FAMN/CORNER, WGPT-DT3 54 - V-ME W35AW - Various Shopping Pgms W47CV - TBN WATCH WPXI 11 N & WPIX 11 CW WATCH WPGH 53 F & WWCP 08 F |
| Sponsored Links | ||
|
|