String manipulation


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting String manipulation
# 8  
Old 03-14-2012
Hi, i have updated in my previous post, Please check it.
# 9  
Old 03-16-2012
Thanks very much Scrutinizer and rangarasan.
These 2 solutions works the way I need it.
How you make these codes I don't understand it, maybe I'm to old for to learn this but I'm trying.

---------- Post updated 03-16-12 at 12:39 AM ---------- Previous update was 03-15-12 at 12:57 AM ----------

I try to change [:alnum:] with [:a-z:] because the script may not joing lines ended with numbers but this doens't work.
Than I change with [ a-zA-Z ] but here the script do nothing.

152
456
I don't want to joing
lines ended with numbers.
-----------------------------
I want to convert this to
----------------------------
152
456
I don't want to joing lines ended with numbers.

I have to learn awk because I can't always ask questions here on this forum.
But thanks anyway.
# 10  
Old 03-16-2012
awk

Hi,

Try this one, There is little modification in my previous post.

Code:
awk -v inpf=35 -v inps=30 '{a[NR]=$0;}END{for(i=1;i<=NR;i++){f=length(a[i]);s=length(a[i+1]);if(f<inpf && s<inps && s!=0 && f!=0 && a[i] !~ /[0-9]$/){ORS="";}else{ORS="\n";}print a[i];}}' file

If current line not ends with Numeric and current line length is less than 35 and also next line lenth is less than 30 then, we are joining the two lines. Hope i covered all your requirement.

Cheers,
RangaSmilie
This User Gave Thanks to rangarasan For This Post:
# 11  
Old 03-16-2012
Code:
awk '1;length<=m && /[[:alpha:][:space:],]$/ && getline p{print (length(p)<=n?FS:RS) p}{print RS}' m=20 n=15 ORS= infile

Quote:
Originally Posted by thailand
[..]I try to change [:alnum:] with [:a-z:] because the script may not joing lines ended with numbers but this doens't work.
Than I change with [ a-zA-Z ] but here the script do nothing.
[..]
In this case that should have been a-zA-Z or [:alpha:]. The latter is preferable since it also works for other letters beside the standard letters...

---------- Post updated at 09:01 ---------- Previous update was at 08:29 ----------

Quote:
Originally Posted by thailand
Thanks very much Scrutinizer and rangarasan.
These 2 solutions works the way I need it.
How you make these codes I don't understand it, maybe I'm to old for to learn this but I'm trying.
[..]
Hi thailand, here is a clarifcation:
1The 1 means: perform the default action which is {print $0}, i.e. print the line or record. Since ORS (the output record selector) is set to nothing, it will not print a newline at the end.
length<=m && /[[:alpha:][:space:],]$/ && getline pif the length of the line is less than m AND it ends with a letter, a space character or a comma AND reading a next line into variable p is successful (in other words we are not at the last line of the file), then
print (length(p)<=n?FS:RS) p}if the length of variable p (which contains the extra line) is less than or equal to n, then print a space ( so p it is on the same line as the previous line ). If not then print a newline character ( so p is on a separate line) . next print variable p without a newline (because ORS is set to nothing).
print RS print a newline character
m=20 n=15 ORS= infileset m to 20 and n to 15. set ORS to nothing, before we start reading the infile

Last edited by Scrutinizer; 03-17-2012 at 05:11 PM..
This User Gave Thanks to Scrutinizer For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

String Manipulation

I'm making a little game in Perl, and I am trying to remove the first instance of a character in an arbitrary string. For example, if the string is "cupcakes"and the user enters another string that contains letters from "cupcake" e.g: "sake"the original string will now look like this (below)... (3 Replies)
Discussion started by: whyte_rhyno
3 Replies

2. Shell Programming and Scripting

Deleting part of a string : string manipulation

i have something like this... echo "teCertificateId" | awk -F'Id' '{ print $1 }' | awk -F'te' '{ print $2 }' Certifica the awk should remove 'te' only if it is present at the start of the string.. anywhere else it should ignore it. expected output is Certificate (7 Replies)
Discussion started by: vivek d r
7 Replies

3. Shell Programming and Scripting

String manipulation

Hello Could you help with small script: How to split string X1 into 3 string String X1 can have 1 or many strings X1='A1:B1:C1:D1:A2:B2:C2:D2:A3:B3:C3:D3' This is output which I want to have: Z1='A1:B1:C1:D1' Z2='A2:B2:C2:D2' Z3='A3:B3:C3:D3' (5 Replies)
Discussion started by: vikus
5 Replies

4. Shell Programming and Scripting

String manipulation

Hi All, Pls help me out on the below, 05 LAMSZ201-ZM-MEMO2-DATE02-5 PIC X(10). 05 LAMSZ201-ZM-MEMO2-AMT02-5 PIC S9(13)V99. 05 LAMSZ201-ZM-MEMO2-TYPE02-6 PIC XXX. 05 LAMSZ201-ZM-MEMO2-DATE02-6 PIC X(10). 05 ... (2 Replies)
Discussion started by: baskivs
2 Replies

5. Shell Programming and Scripting

String Manipulation

Hi, I have a file in the following format 123|shanwer|15DEC2010|bgbh|okok|16JAN3000|okok| I want the following to be in following format 123|shanwer|12\15\2010|bgbh|okok|01\16\3000|okok| SED/PERL/AWK Gurus could you please help me with this? Thanks Shankar (8 Replies)
Discussion started by: Shan2210
8 Replies

6. Shell Programming and Scripting

I need help with string manipulation

First of all I am VERY new to this so bare with me and try and explain everything even if it seems simple. Basically I want to read a line of text from a html file. See if the line of text has a certain string in it. copy an unknown number of characters (the last 4 characters wiil be ".jpg" the... (1 Reply)
Discussion started by: c3lica
1 Replies

7. Shell Programming and Scripting

string manipulation

i have a file that contains a pattern like this: ajay 1234 newyork available kumar 2345 denver singh 2345 newyork ajay 3456 denver kumar 3456 newyork singh 3456 delhi available ajay 4567 miami kumar 4567 miami singh 4567 delhi i want to search for each line... (5 Replies)
Discussion started by: ajay41aj
5 Replies

8. Shell Programming and Scripting

String manipulation

Hi, i am just gettin exposed to UNIX. Could anyone of u help me out with dis problem..? i have a variable 'act' which has the value as follows, echo $act gives -0- -0- -----0---- 2008-06-04 -0- -0- echo "$act" | awk '{print ($act)}' gives, -0- -0- -----0---- 2008-06-04 -0- -0- I... (2 Replies)
Discussion started by: jerrynimrod
2 Replies

9. UNIX for Dummies Questions & Answers

string manipulation

Hi, I have a file with rows of text like so : E100005568374098100000015667 D100005568374032000000112682 H100005228374060800000002430 I need to grab just the last digits(bolded) of each line without the proceeding text/numbers. Thanks (5 Replies)
Discussion started by: james6
5 Replies

10. Shell Programming and Scripting

String Manipulation

Hi, Suppose I have the following text in a file. ORA-00942: table or view does not exist ORA-01555: snapshot too old: rollback segment number string with name "string" too small Is there any way I can list all the text that starts only with 'ORA-'? Or there any grep command that can... (7 Replies)
Discussion started by: kakashi_jet
7 Replies
Login or Register to Ask a Question