10-20-2008
cmd sequence to find & cut out a specific string
A developer of mine has this requirement - I couldn't tell her quickly how to do it with UNIX commands or a quick script so she's writing a quick program to do it - but that got my curiousity up and thought I'd ask here for advice.
In a text file, there are some records (about half of them) that have a specific string, say "ABC" followed by a 15 digit number, always at least 2 leading zeros. In rows that have this, it will appear twice, identically.
I essentially want to cut out these 18 chars into a file of their own. But, they are not in a fixed column position within the file.
Logically, the task is:
a) find the rows with ABC00
b) get the position of that first A
c) cut starting at that position for 18 characters and write to a new file.
example data:
ab cdefgABC000000000012345ABC000000000012345sadlfk
abcde fgABC000000000012346ABC000000000012346sadlfk
abc defgghi jklmn1349d5sadlfk
abcdef sldkfdgABC000000000056789ABC000000000056789abcdlkdfj134239d
and so on.
Desired output
ABC00000000012345
ABC00000000012346
ABC00000000056789
Thanks for having a look.
Lisa
8 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
find . -type f -name "*.sql" -print|xargs perl -i -pe 's/pattern/replaced/g'
this is simple logic to find and replace in multiple files & folders
Hope this helps.
Thanks
Zaheer (0 Replies)
Discussion started by: Zaheer.mic
0 Replies
2. Shell Programming and Scripting
Hi,
I have following samp.txt file in unix.
samp.txt
01Roy2D3M000000
02Rad2D3M222222
.
.
.
.
10Mik0A2M343443
Desired Output
01Roy2A3M000000
02Rad2A3M222222
.
. (5 Replies)
Discussion started by: techmoris
5 Replies
3. Shell Programming and Scripting
i have list in file named sample.txt
eg
i want to cut the 3rd and 4th character i.e. 01,02,03....,24(max length is 24)
and i want to find the missing sequence .and display them
i.e. (15 Replies)
Discussion started by: sagar_1986
15 Replies
4. Shell Programming and Scripting
Hi all,
I have a file like this
ID 3BP5L_HUMAN Reviewed; 393 AA.
AC Q7L8J4; Q96FI5; Q9BQH8; Q9C0E3;
DT 05-FEB-2008, integrated into UniProtKB/Swiss-Prot.
DT 05-JUL-2004, sequence version 1.
DT 05-SEP-2012, entry version 71.
FT COILED 59 140 ... (1 Reply)
Discussion started by: manigrover
1 Replies
5. Shell Programming and Scripting
Hi All-
We have a file data as below with delimiter as |#|
10|#|20|#|ABC
13|#|23|#|PBC
If I want to cut the 2nd field out of this, below command is not working as multiple pipe is causing an issue , it seems
cut -f2 -d"|#|" <file_name>
can you please help to provide the correct command... (7 Replies)
Discussion started by: sureshg_sampat
7 Replies
6. Shell Programming and Scripting
I have a file with some SQL query, I want to fetch only Table Name from that file line by line.
INPUT FILE
SELECT * FROM $SCHM.TABLENAME1;
ALTER TABLE $SCHM.TABLENAME1 ADD DateOfBirth date;
INSERT INTO $SCHM.TABLENAME1 (CustomerName, Country) SELECT SupplierName, Country FROM $SCHM.TABLENAME2... (2 Replies)
Discussion started by: Pratik Majithia
2 Replies
7. Shell Programming and Scripting
I need assistance with following requirement, I am new to Unix.
I want to do the following task but stuck with file creation date(sysdate)
Following is the requirement
I need to create a script that will read the abc/xyz/klm folder and look for *.err files for that day’s date and then send an... (4 Replies)
Discussion started by: PreetArul
4 Replies
8. UNIX for Beginners Questions & Answers
I have to mine the following sequence pattern from a large fasta file namely gene.fasta (contains multiple fasta sequences) along with the flanking sequences of 5 bases at starting position and ending position,
AAGCZ-N16-AAGCZ
Z represents A, C or G (Except T)
N16 represents any of the four... (3 Replies)
Discussion started by: dineshkumarsrk
3 Replies
term::receive(n) Terminal control term::receive(n)
__________________________________________________________________________________________________________________________________________________
NAME
term::receive - General input from terminals
SYNOPSIS
package require Tcl 8.4
package require term::receive ?0.1?
::term::receive::getch ?chan?
::term::receive::listen cmd ?chan?
cmd process string
cmd eof
::term::receive::unlisten ?chan?
_________________________________________________________________
DESCRIPTION
This package provides the most primitive commands for receiving characters to a terminal. They are in essence convenient wrappers around
the builtin commands read and fileevent.
::term::receive::getch ?chan?
This command reads a single character from the channel with handle chan and returns it as the result of the command.
If not specified chan defaults to stdin.
It is the responsibility of the caller to make sure that the channel can provide single characters. On unix this can be done, for
example, by using the command of package term::ansi::ctrl::unix.
::term::receive::listen cmd ?chan?
This command sets up a filevent listener for the channel with handle chan and invokes the command prefix cmd whenever characters
have been received, or EOF was reached.
If not specified chan defaults to stdin.
The signature of the command prefix is
cmd process string
This method is invoked when characters were received, and string holds them for processing.
cmd eof
This method is invoked when EOF was reached on the channel we listen on. It will be the last call to be received by the
callback.
::term::receive::unlisten ?chan?
This command disables the filevent listener for the channel with handle chan.
If not specified chan defaults to stdin.
BUGS, IDEAS, FEEDBACK
This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such in the category term of
the Tcllib SF Trackers [http://sourceforge.net/tracker/?group_id=12883]. Please also report any ideas for enhancements you may have for
either package and/or documentation.
KEYWORDS
character input, control, get character, listener, receiver, terminal
CATEGORY
Terminal control
COPYRIGHT
Copyright (c) 2006 Andreas Kupries <andreas_kupries@users.sourceforge.net>
term 0.1 term::receive(n)