Visit Our UNIX and Linux User Community


AIX sed use space as delimiter


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users AIX sed use space as delimiter
# 1  
Old 02-07-2020
AIX sed use space as delimiter

I am trying to do this with one small tweak. I would also like to use a space as a delimiter.

Code:
sed 's/[,.!?]  */\
/g' file

This is what my file looks like.

Code:
server1, server2, server3
server4 server5 server6

I would like it to look like this.

Code:
server1
server2
server3
server4 
server5 
server6

This was some of my ideas for a solution.
Code:
sed 's/[,.!? ]  */\
/g' file
server1
server2
server3
server4 server5 server6
sed 's/[,.!?  ]  */\
/g' file
server1
server2
server3
server4 server5 server6
sed 's/[,.!? ""]  */\
/g' file
server1
server2
server3
server4 server5 server6
sed 's/[,.!? " "]  */\
/g' file
server1
server2
server3
server4 server5 server6
sed 's/[,.!? '']  */\
/g' file
server1
server2
server3
server4 server5 server6
sed 's/[,.!? ' ']  */\
/g' file
sed: 0602-404 Function s/[,.!?  cannot be parsed.

# 2  
Old 02-07-2020
Including a space in the [ ] is okay but there is also (at least) one following space.
So either have
Code:
/[,.!? ] */

i.e. a following space is not required; this would also cover
Code:
server1,server2,server3

Or have
Code:
/[,.!?]\{0,1\}  */

i.e. a [ ] character may occur 0 or 1 times, followed by (at least) one space.
# 3  
Old 02-07-2020
Quote:
Originally Posted by MadeInGermany
Including a space in the [ ] is okay but there is also (at least) one following space.
So either have
Code:
/[,.!? ] */

i.e. a following space is not required; this would also cover
Code:
server1,server2,server3

Or have
Code:
/[,.!?]\{0,1\}  */

i.e. a [ ] character may occur 0 or 1 times, followed by (at least) one space.
So two spaces vs one space makes a big difference it seems? Do you know why it adds an extra space?

Code:
sed 's/[,.!? ]   */\
/g' file
server1
server2
server3
server4 server5 server6

sed 's/[,.!? ] */\
/g' file
server1
server2
server3

server4
server5
server6

Do you know this adds an extra space?

Code:
sed 's/[,.!?]\{0,1\}  */\
/g' file
server1
server2
server3

server4
server5
server6

# 4  
Old 02-08-2020
You mean the extra line?
I guess there is a space character after the server3; this extra space is converted to an extra newline.
This User Gave Thanks to MadeInGermany For This Post:
# 5  
Old 02-14-2020
This?
Code:
printf "%s\n" $( tr -s ' ,.!?' ' ' <file_name)
server1
server2
server3
server4
server5
server6

tr turns all the expected delimiters to spaces and printf prints one per line.

Andrew
# 6  
Old 02-14-2020
In tr the number of characters in arg1 should match the number in arg2 - otherwise the behavior is not possible.
Convert directly to newline:
Code:
tr -s ' ,!' '\n\n\n' < filename

# 7  
Old 02-17-2020
Quote:
Originally Posted by MadeInGermany
In tr the number of characters in arg1 should match the number in arg2 - otherwise the behavior is not possible.
Convert directly to newline:
Code:
tr -s ' ,!' '\n\n\n' < filename

Okay, sorry about that. I've gotten used to the GNU tr which does allow that behaviour. Now I've checked with Solaris I see your're right.

Andrew

Previous Thread | Next Thread
Test Your Knowledge in Computers #520
Difficulty: Easy
In general, any number in base-10 can be written as the summation of powers of 10 multiplied by the numbers 0 through 9.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Need to use delimiter as : and space in awk

Hi , Please suggest me how do I use : (colon and one space) as a delimiter in awk Best regards, Vishal (2 Replies)
Discussion started by: Vishal_dba
2 Replies

2. Shell Programming and Scripting

Need next line as a space delimiter in awk

Hi,Below is the output for p3fi_dev services 1/app/oracle> . ./oraprofile_p3fi_dev p3fi_dev_01 (P):/devoragridcn_01/app/oracle> srvctl config service -d p3fi_dev p3fi_p3fi_dev.world PREF: p3fi_dev_01 AVAIL: p3fi_dev_02 pplnet_p3fidev PREF: p3fi_dev_01 AVAIL: p3fi_dev_02 nexus_p3fidev PREF:... (3 Replies)
Discussion started by: Vishal_dba
3 Replies

3. Shell Programming and Scripting

using a another delimiter with sed?

Hi there, After lots of reading I figured out how to use sed to parse my file. This file is called services.txt: 00a1:ffff0000:0018:01f4:1:477 BravaNL 00a2:ffff0000:0018:01f4:1:471 MAX 00a3:ffff0000:000b:01f4:1:390 HaberTürk... (5 Replies)
Discussion started by: MastaG
5 Replies

4. Shell Programming and Scripting

Space as a delimiter

not sure if i'm doing this right i'm new tho this but i'm trying to use a space as a delimiter with the cut command my code is size=$( du -k -S -s /home/cmik | cut -d' ' -f1 ) i've also tried -f2 and switching the -d and -f around if that does anything (3 Replies)
Discussion started by: Cmik
3 Replies

5. Shell Programming and Scripting

Problem in extraction when space is a field delimiter

I have more than 1000 files to parse. Each file contains few lines (number of lines varies) followed by a header line having all column's name (SPOT, NAME etc) and then values for those columns. **Example File: sdgafh dfhaadfha sfgaf dhah jkthdj SPOT NAME GENE_NAME CH_MEAN CHDN_MED ... (11 Replies)
Discussion started by: AshwaniSharma09
11 Replies

6. Shell Programming and Scripting

comma delimiter and space

I have a csv file and there is a problem which I need to resolve. Column1,Column2,Colum3,Column4 ,x,y,z ,d,c,v t,l,m,n ,h,s,k ,k,,y z,j, ,p Now if you see column1 for row 1 and row 4 though they are null there is a space but in case of row2 and row 5 there is no space. I want row... (3 Replies)
Discussion started by: RubinPat
3 Replies

7. UNIX for Dummies Questions & Answers

Delimiter: Tab or Space?

Hello, Is there a direct command to check if the delimiter in your file is a tab or a space? And how can they be converted from one to another. Thanks, G (4 Replies)
Discussion started by: Gussifinknottle
4 Replies

8. UNIX for Dummies Questions & Answers

Problem Using Cut With A Space Delimiter

I am trying to extract 'postmaster' from the following string: PenaltyError:=554 5.7.1 Error, send your mail to postmaster@LOCALDOMAIN using the following command: cat /usr/share/assp/assp.cfg | grep ^PenaltyError:= | cut -d '@' -f1 | cut -f8 but it returns: PenaltyError:=554 5.7.1 Error,... (10 Replies)
Discussion started by: cleanden
10 Replies

9. UNIX for Dummies Questions & Answers

replacing space with pipe(delimiter)

Hello All, I have a file with thousands of records: eg: |000222|123456987|||||||AARONSON| JOHN P|||PRIMARY |P |000111|567894521|||||||ATHENS| WILLIAM k|||AAAA|L Expected: |000222|123456987|||||||AARONSON| JOHN |P|||PRIMARY |P |000111|567894521|||||||ATHENS| WILLIAM |k|||AAAA|L I... (6 Replies)
Discussion started by: OSD
6 Replies

10. Shell Programming and Scripting

replace space with delimiter in whole file -perl

Hi I have a file which have say about 100,000 records.. the records in it look like Some kind of text 1234567891 abcd February 14, 2008 03:58:54 AM lmnop This is how it looks.. if u notice there is a 2byte space between each column.. and im planning to replace that with '|' .. ... (11 Replies)
Discussion started by: meghana
11 Replies

Featured Tech Videos