How to check string contain multiple tabs or spaces?


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers How to check string contain multiple tabs or spaces?
# 1  
Old 03-20-2019
How to check string contain multiple tabs or spaces?

str contains tabs and multiple spaces
Code:
str="hello                       world. How are    you?"

I want to check string start with hello world,
and my code is:

Code:
if [[ $str == "hello[[:blank:]]world"* ]]; then
  echo "found"
else
  echo "not found"
fi

Not work

Other solution may work is to replace all tabs and spaces with a single space. I googling and found a solution

Code:
	shopt -s extglob
	temp=$(echo "${str//+([[:blank:]])/ }")
	if [[ $temp == "hello world"* ]]; then
		echo "found"
	fi

But I don't want to replace, just check in condition. I am new to shell, sorry.
# 2  
Old 03-20-2019
Hi, maybe this will help?
Code:
if [[ $(echo $str) == "hello world"* ]];

These 3 Users Gave Thanks to nezabudka For This Post:
# 3  
Old 03-20-2019
That's clever. By feeding it into a command without quotes, you've flattened the whitespace.
These 2 Users Gave Thanks to Corona688 For This Post:
# 4  
Old 03-20-2019
You seem to have a sufficiently recent shell... man bash:
Quote:
An additional binary operator, =~, is available, ... When it is used, the string to the right of the operator is considered an extended regular expression
Thus, try also

Code:
if [[ $str =~ "^hello[[:blank:]]*world" ]];

This User Gave Thanks to RudiC For This Post:
# 5  
Old 03-20-2019
Quote:
Originally Posted by RudiC
You seem to have a sufficiently recent shell... man bash: Thus, try also

Code:
if [[ $str =~ "^hello[[:blank:]]*world" ]];

Then already
Code:
if [[ "$str" =~ ^"hello"[[:blank:]]+"world" ]];

--- Post updated at 23:57 ---

or
Code:
if [[ "$str" =~ ^hello[[:blank:]]+world ]];

--- Post updated 03-21-19 at 00:04 ---

Actually this is news to me. It's regexp. Even have to escape question mark
Code:
if [[ "$str" =~ ^hello[[:blank:]]+world.*\?$ ]];


Last edited by nezabudka; 03-20-2019 at 06:12 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Grab line regardless of if it ends with tabs or spaces

so i have a data file that has various lines which may or may not end with spaces or tabs. data.file: , \t \t {sample} <spaces> <spaaces> several more spaces.... {"resemble"}, <nospaces> Command i'm using: sed -n 8p data.file | egrep "\],$|\],\ $" or egrep "\],$|\],\ $"... (1 Reply)
Discussion started by: SkySmart
1 Replies

2. UNIX for Advanced & Expert Users

Vimrc creating tabs instead of spaces

I'm having trouble getting my vimrc to work the way I want it. For some reason after I hit enter it is creating tabs instead of spaces like I would expect. Here is an example of what I am talking about. $ = newline, ^I = tab. On the line of struct EDGETAG* q; I hit enter and it created a tab... (2 Replies)
Discussion started by: cokedude
2 Replies

3. Shell Programming and Scripting

replace spaces/tabs with delimiter |

Hi, I'm looking for a command that replaces spaces/tabs with pipe symbol and store the result to the same file instead of routing it to another file. infile outfile Thanks. (11 Replies)
Discussion started by: dvah
11 Replies

4. Shell Programming and Scripting

spaces to tabs - group with IP

hi buddies; i have a file.txt: Note: All the seperators are SPACE. 192.168.1.1 ParameterObject=1 Speech 1 ParameterObject=2 Speech 1 192.168.1.1 ParamFunction=1 UserID 1 (DEACTIVATED) Sector=1,Device=2,Unit=3 DeviceId 1 192.168.1.1 FeederCable=2B ... (18 Replies)
Discussion started by: gc_sw
18 Replies

5. Shell Programming and Scripting

Replacing tabs with spaces

I want my program to replace tabs with spaces.1tab=4spaces.When i write aa(tab)aaa(tab)(tab)a(tab) it must show me aaxxaaaxxxxxaxxx. I think that my program works corectly but when a write aaa(tab)a it must show aaaxa but it is aaaxxxxxa.Please for help!!! That is my code: #include <stdio.h> ... (3 Replies)
Discussion started by: marto1914
3 Replies

6. Shell Programming and Scripting

clear extra spaces and tabs in a file

Any help appreciated Thanks sample input: > (extra spaces&tabs in here) test1 (extra spaces&tabs in here) 123.123.123.123 (extra spaces&tabs in here) abc (extra spaces&tabs in here) 123 --- < (extra spaces&tabs in... (3 Replies)
Discussion started by: goofist
3 Replies

7. UNIX for Dummies Questions & Answers

Problem with White spaces and tabs

Hi All, I am facing issues converting white spaces and tabs together in a file I am reading. Here is the command I am trying: tr -s ' '@ | sort -t@ +1n filename I guess the problem is that it is not converting the tabs to another delimiter. Also, I am supposed to accomplish this only using... (5 Replies)
Discussion started by: sh_kk
5 Replies

8. Shell Programming and Scripting

spaces or Tabs?

When formatting a script let's say for instance the following: case ${choice} in 1) vi ${tmp1}.tmp # overwrite the tmp1 var with any user changes cp ${tmp1}.tmp ${tmp1} ;; ... (2 Replies)
Discussion started by: llsmr777
2 Replies

9. Shell Programming and Scripting

replacing tabs to spaces from files

hi, I have some 50 C files in which for indentation of code some devlopers used tabs, but we dont want any tab used for indentation. I have following 2 need. 1) find tabs from all 50 files (which are in one directory ) 2) replace them with 4 spaces. Thanks Rishi (6 Replies)
Discussion started by: rishir
6 Replies

10. Shell Programming and Scripting

Converting tabs in to spaces.

Hi! I'm using SunOS 5.7 w/ Bash 2.01. Currently, I'm working on a script that will make it possible to find textfiles which match certain criteria. While I write this message, I had some brainfarts, found the answer myself :D and the question I had in mind is now no longer the question I... (3 Replies)
Discussion started by: indo1144
3 Replies
Login or Register to Ask a Question