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 #118
Difficulty: Easy
A Unix-like OS is the one that works like Unix systems, however, Unix-like system do not necessarily conform to the Single UNIX Specification (SUS) or POSIX (Portable Operating System Interface) standards.
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