01-18-2008
You can do it using sed, awk and other.
The idea is to parse this line by line and to remove prefix and postfix.
In ksh following syntax:
line="${line#xxx}"
is "remove trailing string "xxx" from the variable line. if not possible to remove then return me the string unmodified. then assign result to line".
# : remove trailing part
## : remove trailing part (as much as possible)
% : similar but for ending part
%% : similar
Example:
x='aaabbb'
"${x#a}" is 'aabbb'
"${x##a}" is 'bbb'
sed should handle this best (however I had some bad experience with lines longer than 255 chars in sed). Just tell him to remove replace {prefix_pattern}{?}{postfix_pattern} and replace it with {?}.
Sory, but I don't remember exactly what was the syntax in sed.
In example given by me you can see:
line="${line##/|\ }"
This is "remove prefix". And prefix is a pattern: '/' or ' '
line="${line%.pls}"
This is "remove postfix". And postfix is '.pls'. Just replace this with a pattern and you have it.
To pass the data for 'read -p' you could use
cat file |&
10 More Discussions You Might Find Interesting
1. Solaris
My input file looks like
"
@$SCRIPT/atp_asrmt_adj.sql
$SCRIPT/dba2000.scr -s / @$SCRIPT/cim1005w.pls
$SCRIPT/dba2000.scr -s / @$SCRIPT/cim1006w.pls
start $SCRIPT/cim1020d.sql;^M
spool $DATA/cim1021m.sql
@$DATA/cim1021m.sql
! rm $DATA/cim1021m.sql
spool $DATA/cim1021m.sql... (1 Reply)
Discussion started by: dowsed4u8
1 Replies
2. Shell Programming and Scripting
Hi,
Please help me to extrat values b/w two delimiters.
$ echo $abc
i want to extract the value 12345 b/w %. (5 Replies)
Discussion started by: tsaravanan
5 Replies
3. Programming
needa c program to extract text between two delimiters from some text file.
and then storing them in to diffrent variables ?
text file like 0:
abc.txt
=========
aaaaaa|11111111|sssssssssss|333333|ddddddddd|34343454564|asass
aaaaaa|11111111|sssssssssss|333333|ddddddddd|34343454564|asass... (7 Replies)
Discussion started by: kukretiabhi13
7 Replies
4. Shell Programming and Scripting
I need to extract certain pieces from a string, wher delimiters may vary. For example
A0 B0 C0 12345677 X0 Y0 Z0
A1-B1 C1 12345678 X1 Y0 Z0
A1/B2 C77 12345679 X2 Y0 Z0
I need to get
C0 12345677 X0
C1 12345678 X1
C77 12345679 X2
I tried sed, see example below:
echo 'A0 B0... (2 Replies)
Discussion started by: migurus
2 Replies
5. AIX
Hi,
Can somebody help me with the below situation,
Input File,
========
2007_08_07_IA-0100-014_(MONTHLY).PDF
2007_08_07_IA-0100-031_(QUARTERLY)(RERUN).PDF
2008-02-28_KR-1022-003_(MONTH)(RERUN)(REC1).CSV
Required output,
============
MONTHLY
QUARTERLY
MONTH
... (15 Replies)
Discussion started by: sravicha
15 Replies
6. Shell Programming and Scripting
I try order the content from file by delimiters.
This is the text:
interface Loopback0
description !!!RID RR_SLT
ip address 172.31.128.19 255.255.255.255
interface GigabitEthernet0
description !!!P_SLT GI0/0/9
ip address 172.31.130.246 255.255.255.252
and the result that I need... (11 Replies)
Discussion started by: bobbasystem
11 Replies
7. Shell Programming and Scripting
So I'm racking my brain on appropriate ways to solve a problem that once fixed, will solve every problem in my life. Its very easy (for you guys and gals) I'm sure, but I can't seem to wrap my mind around the right approach. I really want to use bash to do this, but I can't grasp how I'm going to... (14 Replies)
Discussion started by: eh3civic
14 Replies
8. Shell Programming and Scripting
Good afternoon!
I have an XML file from which I want to extract only certain elements contained within each line. The problem is that the format of each line is not exactly the same (though similiar). For example, oa_var will be in each line, however, there may be no value or other... (3 Replies)
Discussion started by: bab@faa
3 Replies
9. Shell Programming and Scripting
Hi All,
i have file name like below
ABC_065224_123456_123456_your_130413_163005.txt
ABC_065224_123456_MAIN_20130413_163005.txt
ABC_065224_123456_123456_MAIN_130413_163005.txt
ABC_065224_123456_123456_434567_MAIN_130413_163005.txt
i need to find out the number of characters in the filed... (6 Replies)
Discussion started by: dssyadav
6 Replies
10. Shell Programming and Scripting
Hi All,
I'm stuck-up in finding a way to skip the delimiter which come within double quotes using awk or any other better option. can someone please help me out.
Below are the details:
Delimited: |
Sample data: 742433154|"SYN|THESIS MED CHEM PTY.... (2 Replies)
Discussion started by: BrahmaNaiduA
2 Replies
CSPLIT(1) BSD General Commands Manual CSPLIT(1)
NAME
csplit -- split files based on context
SYNOPSIS
csplit [-ks] [-f prefix] [-n number] file args ...
DESCRIPTION
The csplit utility splits file into pieces using the patterns args. If file is a dash ('-'), csplit reads from standard input.
The options are as follows:
-f prefix
Give created files names beginning with prefix. The default is ``xx''.
-k Do not remove output files if an error occurs or a HUP, INT or TERM signal is received.
-n number
Use number of decimal digits after the prefix to form the file name. The default is 2.
-s Do not write the size of each output file to standard output as it is created.
The args operands may be a combination of the following patterns:
/regexp/[[+|-]offset]
Create a file containing the input from the current line to (but not including) the next line matching the given basic regular
expression. An optional offset from the line that matched may be specified.
%regexp%[[+|-]offset]
Same as above but a file is not created for the output.
line_no
Create containing the input from the current line to (but not including) the specified line number.
{num} Repeat the previous pattern the specified number of times. If it follows a line number pattern, a new file will be created for each
line_no lines, num times. The first line of the file is line number 1 for historic reasons.
After all the patterns have been processed, the remaining input data (if there is any) will be written to a new file.
Requesting to split at a line before the current line number or past the end of the file will result in an error.
ENVIRONMENT
The LANG, LC_ALL, LC_COLLATE and LC_CTYPE environment variables affect the execution of csplit as described in environ(7).
EXIT STATUS
The csplit utility exits 0 on success, and >0 if an error occurs.
EXAMPLES
Split the mdoc(7) file foo.1 into one file for each section (up to 20):
csplit -k foo.1 '%^.Sh%' '/^.Sh/' '{20}'
Split standard input after the first 99 lines and every 100 lines thereafter:
csplit -k - 100 '{19}'
SEE ALSO
sed(1), split(1), re_format(7)
STANDARDS
The csplit utility conforms to IEEE Std 1003.1-2001 (``POSIX.1'').
HISTORY
A csplit command appeared in PWB UNIX.
BUGS
Input lines are limited to LINE_MAX (2048) bytes in length.
BSD
January 26, 2005 BSD