replace spaces/tabs with delimiter |


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting replace spaces/tabs with delimiter |
# 1  
Old 04-06-2011
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
Quote:
asd asdf
sdgf aasdf
outfile
Quote:
asd|asdf|
sdgf|aasdf|
Thanks.
# 2  
Old 04-06-2011
Try:
Code:
perl -i -pe 's/[ \t]/|/g;s/$/|/' file

# 3  
Old 04-06-2011
Quote:
Originally Posted by dvah
I'm looking for a command that replaces spaces/tabs with pipe symbol
What about consecutive spaces/tabs? One pipe symbol for any or one for each sequence?

First case:
Code:
sed 's/[<spc><tab>]/|/g' /path/to/source > /path/to/target

Second case:
Code:
sed 's/[<spc><tab>][<spc><tab>]*/|/g' /path/to/source > /path/to/target

Quote:
Originally Posted by dvah
and store the result to the same file instead of routing it to another file.
This cannot be done with any stream-oriented tool (sed, awk, ...). Just move the result file in place of the source file afterwards:

Code:
sed '<somecommand>' /path/to/source > /path/to/target
mv /path/to/target /path/to/source

Replace "<spc>" and "<tab>" with literal space and tab characters in the above code.

I hope this helps.

bakunin
# 4  
Old 04-06-2011
Code:
printf '%s\n' '1,$s/[<space><tab>]/|/g' w q | ed -s file >/dev/null

If you like living dangerously (although I wouldn't recommend it):
Code:
(rm file; sed 's/[<space><tab>]/|/g' > file) < file

If using the C/POSIX locale, you can use [[:blank:]] instead of [<space><tab>].

Regards,
Alister
# 5  
Old 04-08-2011
Quote:
Originally Posted by bartus11
Try:
Code:
perl -i -pe 's/[ \t]/|/g;s/$/|/' file

Sorry but this command fails for multiple spaces/tabs.
# 6  
Old 04-08-2011
Code:
$ cat file
asd asdf
sdgf            aasdf

$ ruby -ne 'puts $_.split.join("|")' file
asd|asdf
sdgf|aasdf

# 7  
Old 04-08-2011
Quote:
Originally Posted by kurumi
Code:
$ cat file
asd asdf
sdgf            aasdf
 
$ ruby -ne 'puts $_.split.join("|")' file
asd|asdf
sdgf|aasdf

Sorry but my machine doesnt supports ruby command.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

[Solved] Insert tabs as delimiter

Hello all, I have an unstructured file with space as delimiter , which I want to structure. The output file should actually have only 5 columns with tab as delimiter. The 4th column can have only 3 values ( biological_process , cellular_component , molecular_function ) Here is how the... (12 Replies)
Discussion started by: ritakadm
12 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

Remove spaces / tabs from variable in script

I want to remove extra spaces from variable in aix script. We retrieve the data from oracle database and then print the values. We have a value on 90th position. When we execute the query on sqlplus it shows the length of 90th position as 3, but when we use the same query in aix script it shows... (5 Replies)
Discussion started by: lodhi1978
5 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