09-09-2002
sed command breakdown
sed -n '/[0-9]\{10\}E[1-2]/p' $filename | sort >> $filename.sorted
Could somebody please give me a breakdown of what exactly each part of this sed statement does, I have inherited a production script, and know that basically it sorts a file that looks like this
(20 spaces here) 0304053456e17347983740284738495
6354053454e27347983770267638494
2304053456e17347983740284738495
2304053456e27347983740284738495
Notice the 31st/32nd character (including the 20 spaces) there is an e1 or e2) as far as I can determine, its taking all the e1's, putting them into a file called $filename.Sorted ($filename variable is created earlier in the script) Then taking all the e2's and appending them to the end of that file. .In the above example the destination file looks like this
0304053456e17347983740284738495
2304053456e17347983740284738495
6354053454e27347983770267638494
2304053456e27347983740284738495
Note the e1's are at the top and all e2,s are at the bottom. Im specifically interested in the first portion "sed -n '/[0-9]\{10\}e[1-2]/p' "
Any help on this would be greatly appreciated
Last edited by hcclnoodles; 09-09-2002 at 07:16 AM..
10 More Discussions You Might Find Interesting
1. AIX
Hi,
Stats:
AIX 5.3, P590 series. 8 CPUs, 27GB RAM. DB SGA 4GB
MAXCLIENT=MAXPERM% = 20% (MIN IS 10%)
lru_file_repage =1
strict value for maxperm and for maxclient both set to 1.
File system=jfs2.
paging = 1% all the time (means no paging)
Consider the following at point in time:
From... (1 Reply)
Discussion started by: shahidsa
1 Replies
2. Shell Programming and Scripting
Sorry for the duplicate thread this one is similar to the one in
https://www.unix.com/shell-programming-scripting/88132-awk-sed-script-read-values-parameter-files.html#post302255121
Since there were no responses on the parent thread since it got resolved partially i thought to open the new... (4 Replies)
Discussion started by: rajan_san
4 Replies
3. Shell Programming and Scripting
hey, somebody can help me on this broken script?
for i in `find . -name index.html`;do
echo "$i"
awk '{print $0}' $i
done
the path to index.html has space in it. For example,
./10 October/index.html
then echo "$i" will gives two lines instead of one:
./10
October/index.html
how do... (3 Replies)
Discussion started by: patiobarbecue
3 Replies
4. Shell Programming and Scripting
Okay, title is kind of confusion, but basically, I have a lot of scripts on a server that I need to replace a ps command, however, the new ps command I'm trying to replace the current one with pipes to sed at one point. So now I am attempting to create another script that replaces that line.
... (1 Reply)
Discussion started by: cbo0485
1 Replies
5. Shell Programming and Scripting
Hello,
Can any perl experts help me convert my sed string to perl. I am unsuccessful with this.
I have to remove this string from html files OAS_AD('Top');
I have come up with this. However the requirement is in perl.
for find in $(find . -type f -name "file1.html") ; do cat $find |... (2 Replies)
Discussion started by: abacus
2 Replies
6. UNIX for Dummies Questions & Answers
I know this script is crummy, but I was just messing around.. how do I get sed's insert command to allow variable expansion to show the filename?
#!/bin/bash
filename=`echo $0`
/usr/bin/sed '/#include/ {
i\
the filename is `$filename`
}' $1
exit 0 (8 Replies)
Discussion started by: glev2005
8 Replies
7. Solaris
Hello,
I am trying to breakdown the cXtXdX (specifically tX) part of an iscsi device.
I know in the fibre SAN world, this tX will usually be a combination of the path to device/device WWN.
From what I understand in iscsi world it is similar, breaking down into... (0 Replies)
Discussion started by: Bashful
0 Replies
8. Shell Programming and Scripting
Hello All,
I have something like below
LDC100/rel/prod/libinactrl.a
LAA2000/rel/prod/libinactrl.a
I want to remove till first forward slash that is outputshould be as below
rel/prod/libinactrl.a
rel/prod/libinactrl.a
How can I do that ??? (8 Replies)
Discussion started by: anand.shah
8 Replies
9. Shell Programming and Scripting
Hi,
I am running a script sample.sh in bash environment .In the script i am using sed and awk commands which when executed individually from terminal they are getting executed normally but when i give these sed and awk commands in the script it is giving the below errors :-
./sample.sh: line... (12 Replies)
Discussion started by: satishmallidi
12 Replies
10. UNIX for Dummies Questions & Answers
Hi All,
I'm relatively new to Unix scripting and am trying to get my head around piping.
I'm trying to take a header record from one file and prepend it to another file. I've done this by creating several temp files but i'm wondering if there is a cleaner way to do this.
I'm thinking... (10 Replies)
Discussion started by: BigCroyd
10 Replies
TRS(1) Linux User's Manual TRS(1)
NAME
trs - filter replacing strings
SYNOPSIS
trs [-[r]e] 'REPLACE_THIS WITH_THAT [AND_THIS WITH_THAT]...'
trs [-[r]f] FILE
DESCRIPTION
Copy stdin to stdout replacing every occurence of given strings with other ones. This is similar to tr(1), but replaces strings, not only
single chars.
Rules (separated by whitespace) can be given directly after -e option, or can be read from FILE. Argument not preceded by -e or -f is
guessed to be a script when it contains some whitespace, or a filename otherwise.
Comments are allowed from # until the end of line. The character # in strings must be specified as #.
Standard C-like escapes a e f
v \
nn are recognized. In addition, s means a space character and ! means an empty
string.
Sets of acceptable characters at a given position can be specified between [ and ]. ASCII ranges in sets can be shortly written as
FIRST-LAST. When a set consists of only a single range, [ and ] can be omitted.
When a part of the string to translate is enclosed in {...}, only that part is replaced. Any text outside {...} serves as an assertion:
a string is translated only if it is preceded by the given text and followed by another one. { at the beginning or } at the end of the
string can be omitted. Text outside {...} is treated as untranslated.
Before the beginning of the file and after its end there are only
's. Thus, for example,
{.}
matches . on a line by itself,
including the first line, and the last one even without the
marker.
A fragment of the form ?x=N, where x is a letter A-Za-z and N is a digit 0-9, contained in the target text sets the variable x to the
value N when that rule succeeds. Similar fragment in the source text causes the given rule to be considered only if that variable has such
value. Initially all variables have the value of 0. Several assignments or conditions can be present in one rule - they are ANDed
together.
OPTIONS
-e Give the translation rules directly in the command line.
-f Get them from the file specified.
-r Reverse every rule. This affects only the next -e or -f option. Of course this doesn't have to give the reverse translation! Any
rule containing any of {}[]{}- is taken in only one direction. You may force any rule to be taken in only one direction by
enclosing the string to translate in {...}.
--help display help and exit
--version
output version information and exit
Multiple -e or -f options are allowed. All rules are loaded together then, and earlier ones have precedence.
EXAMPLE
$ echo Leeloo |trs -e 'el n e i i aqq o}
x o u'
Linux
DIFFERENCES FROM sed
The main difference between trs and sed 's///g; ...' (excluding sed's regular expressions) is that sed takes every rule in the order speci-
fied and applies it to the whole line of translated file, whereas trs examines every position and tries all rules in this place first. In
sed every next rule is fed with the text produced by the previous one, whereas in trs every piece of text can be translated at most once
(if more than one rule matches at a given position, the one mentioned earlier wins). That's why sed isn't well suited for translating
between character sets. On the other hand, tr translates only single bytes, so it can't be used for Unicode conversions, or TeX / SGML ways
for specifying extended characters.
Another example:
$ echo 642 |trs -e '4 7 72 66 64 4'
42
$ echo 642 |sed 's/4/7/g; s/72/66/g; s/64/4/g'
666
The string to replace can be empty; there must be something outside {} then. In this special case only one such create-from-nothing rule
can success at a given position. For example, }x80-xFF @ precedes every character with high byte set with @. The rule of the form
some{ thing doesn't work at the end of a file.
SEE ALSO
tr(1), konwert(1)
COPYRIGHT
trs is a filter replacing strings. It forms part of the konwert package.
Copyright (c) 1998 Marcin 'Qrczak' Kowalczyk
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MER-
CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
AUTHOR
__("< Marcin Kowalczyk * qrczak@knm.org.pl http://qrczak.home.ml.org/
\__/ GCS/M d- s+:-- a21 C+++>+++$ UL++>++++$ P+++ L++>++++$ E->++
^^ W++ N+++ o? K? w(---) O? M- V? PS-- PE++ Y? PGP->+ t
QRCZAK 5? X- R tv-- b+>++ DI D- G+ e>++++ h! r--%>++ y-
Konwert 12 Jul 1998 TRS(1)