Search for an undetermined number of spaces


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Search for an undetermined number of spaces
# 1  
Old 02-24-2018
Search for an undetermined number of spaces

I would like to find an undetermined number of spaces and shorten them to one space. I am running Debian in mksh. Script running in #!/bin/sh. Sorry to not include all code. The program is too big and involves an online file... too much hassle to solve a simple issue.


Ex.,

I start with (pretend the periods are spaces),

"This . . . . sentence has . . . . . . an undetermined . . number of . spaces between . . . . . . each word."


The result would be:

"This sentence has an undetermined number of spaces."


What I have so far is working but extremely poor code:
Code:
        {gsub (/  /, " ")}
        {gsub (/  /, " ")}
        {gsub (/  /, " ")}
        {gsub (/  /, " ")}
        {gsub (/  /, " ")}
        {gsub (/  /, " ")}
        {gsub (/  /, " ")}
        {gsub (/  /, " ")}

I've tried several combinations to no effect. I've been reading up on awk in a tutorial, but so far no mention of this situation.
# 2  
Old 02-24-2018
Did you consider the
Code:
tr -s

command?
This User Gave Thanks to RudiC For This Post:
# 3  
Old 02-24-2018
Quote:
Originally Posted by RudiC
Did you consider the
Code:
tr -s

command?
This looks like a great program for one/two job operations, and I'll likely use it for other tasks now that I know it exists; but, I wanted to stick with awk and keep the programs to a minimum.

I should have mentioned that.
# 4  
Old 02-24-2018
Try:
Code:
awk '{$1=$1}1' file

What is does is translate the default field separator (one or more space or TAB characters) to the default output separator (a single space).
This User Gave Thanks to Scrutinizer For This Post:
# 5  
Old 02-24-2018
Quote:
Originally Posted by Scrutinizer
Try:
Code:
awk '{$1=$1}1' file

What is does is translate the default field separator (one or more space or TAB characters) to the default output separator (a single space).
I was just about to post that I was not looking for the above code. I have used this, and it collapses return keys and other useful characters.

I only want to reduce spaces beyond a single space to a single space using awk.

Sorry for the runaround. Smilie
# 6  
Old 02-24-2018
Try also
Code:
awk '{gsub (/ +/, " ")}1' file

or
Code:
awk '{gsub (/  */, " ")}1' file

This User Gave Thanks to RudiC For This Post:
# 7  
Old 02-24-2018
Quote:
Originally Posted by RudiC
Try also
Code:
awk '{gsub (/ +/, " ")}1' file

or
Code:
awk '{gsub (/  */, " ")}1' file

Both work perfectly! I was so close; I had only to add another space before the asterik in the second method and it would have worked!

Thank you all! Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Printing a specific number of spaces

when given a file name, im looking for the most efficient way to turn each letter of the file name into spaces. for instance, the way im thinking of going about this is this: MYFILE=check_disks.sh CHANUM=$(echo ${MYFILE} | awk '{ print length }') printf '%s\n' $CHANUM as you can see... (4 Replies)
Discussion started by: SkySmart
4 Replies

2. Shell Programming and Scripting

Print a specific number of spaces

i'm looking for a command that allows me to print a specific number of spaces which i will provide. something as simple as: spaces=4 printf " " * $spaces i'm looking for somethign that'll allow me to print a specific amount of spaces on a line. can awk be used for this? (4 Replies)
Discussion started by: SkySmart
4 Replies

3. AIX

Search a string having spaces

Hi I am looking to search a string having spaces in a directory for example : my string is "summer hot" my code :for i in `cat position__list.txt` do echo $i" : " `find . -mtime -6 | xargs grep -l ":83D:$i" | xargs ls -ltr|tail -1|awk '{ print $6 , $7 , $8, $9;... (6 Replies)
Discussion started by: wedng.bell
6 Replies

4. Shell Programming and Scripting

Conduct a search or test -f over a path with spaces

I am organizing my music library on a NAS server. I want to print a list of all the directories that are missing the cover art (at least one or more jpeg file). I have successfully created a file with each line containing the path to each occurance of one or more .mp3 files. That path is also... (2 Replies)
Discussion started by: godfreydanials
2 Replies

5. Shell Programming and Scripting

search pattern that has spaces with nawk

Hi guys, I need a help ! I need do grab some string from file and then count n lines after that pattern. This is working fine, but my problem is that the string to be searched has spaces within, like an example : LINK COUNTERS what I am using is: nawk... (2 Replies)
Discussion started by: robdcb
2 Replies

6. Shell Programming and Scripting

determine the number of spaces

Here is a weird question :) i am trying to create a script written in bash that will create configuration files for nagios. As some of you aware is has to be written in the below format: define service{ option1 value1 option2 value2... (6 Replies)
Discussion started by: ppolianidis
6 Replies

7. UNIX for Dummies Questions & Answers

grep any number of spaces

which one of the following is the correct expression to ignore line with multiple spaces after any string cat file | grep -v "xyz *$" or cat file | grep -v "xyz*$" do i need "*" to specify the sapce or " *" will do? (2 Replies)
Discussion started by: manishma71
2 Replies

8. Shell Programming and Scripting

construct a string with X number of spaces

I'd like to create a variable with the value of X number of space( no Perl please), printf seems to work, but , in following example,10 spaces becomes 1 space when assinged to a variable, Why? other solutions are welcome. $printf "=%10s=\n" = = $var=$(printf "=%10s=\n") echo... (4 Replies)
Discussion started by: honglus
4 Replies

9. Shell Programming and Scripting

Split File of Number with spaces

How do i split a variable of numbers with spaces... for example echo "100 100 100 100" > temp.txt as the values can always change in temp.txt, i think it will be feasible to split the numbers in accordance to column. How is it possible to make it into $a $b $c $d? (3 Replies)
Discussion started by: dplate07
3 Replies

10. Shell Programming and Scripting

Search string with invariable spaces

I need to grep for pattern "enable_cal = true".The problem is that different file has different no of spaces in that string. for eg one file will have "enable_cal <space><space><space>=true" next file will have "enable_cal= <space><space>true" other one will have... (5 Replies)
Discussion started by: villain41
5 Replies
Login or Register to Ask a Question