replacing a group of spaces into a comma

Hi all,

I’ve got a rather specific problem.

I have a variable string that looks like this (I’m trying to parse something from terminal:

itemone – itemtwo itemthree itemfour itemfive itemsix itemseven

note: the spaces can be a different length between items, so what I need is an applescript that takes the above variable string and replaces each group of spaces into a comma so the result will look something like this:


From there, I can use standard delimiters to grab the items I need.

Many thanks in advance, I’ve been trying to find a solution to this for the last few days!

  • Mel


try this

set oldText to "itemone            --      itemtwo           itemthree    itemfour            itemfive     itemsix     itemseven     " --> the spaces are ignored in the applescript block
set {TID, text item delimiters} to {text item delimiters, space}
set oldList to text items of oldText
set newList to {}
repeat with i in oldList
	if contents of i is not "" then set end of newList to contents of i
end repeat
set text item delimiters to ","
set newText to newList as text
set text item delimiters to TID

note: it doesn’t work if one of the items contains a space character


The OP ask for the replacement of ‘groups of spaces’

I understand that as:
replace groups but don’t replace isolated space characters.

This is why I use:

--\[SCRIPT spaces2comma]
Enregistrer le script en tant que Script, Application ou Progiciel :
déplacer le fichier créé dans le dossier
Il vous faudra peut-être créer le dossier Applications.

Copiez vos données dans le Presse-papiers.

menu Scripts > spaces2comma

Chaque groupe de caractères espace sera remplacé par un caractère virgule.
Le résultat sera disponible dans le presse-papiers.


Save the script as a Script, Application or Application Bundle:

Move the newly created file into the folder:
<startup Volume>:Users:<yourAccount>:Library:Scripts:Applications:
Maybe you would have to create the folder Applications by yourself.

Copy your block of datas to the Clipboard.

menu Scripts > spaces2comma

Every group of space characters will be replaced by a comma character.
The result will be available in the clipboard.

Yvan KOENIG (Vallauris, FRANCE)
4 février 2009 


on run
		set theText to (the clipboard as text)
	on error
		if my parleAnglais() then
			error "No valid text data in the Clipboard !"
			error "Pas de données texte dans le presse-papiers !"
		end if
	end try
	set twoSpaces to space & space
	set threeSpaces to twoSpaces & space
	repeat while theText contains threeSpaces
		set theText to my remplace(theText, threeSpaces, twoSpaces)
	end repeat
	set the clipboard to my remplace(theText, twoSpaces, ",")
end run

on remplace(t, d1, d2)
	local l
	set AppleScript's text item delimiters to d1
	set l to text items of t
	set AppleScript's text item delimiters to d2
	set t to l as text
	set AppleScript's text item delimiters to ""
	return t
end remplace


on parleAnglais()
	local z
		tell application theApp to set z to localized string "Cancel"
	on error
		set z to "Cancel"
	end try
	return (z is not "Annuler")
end parleAnglais



Yvan KOENIG (from FRANCE dimanche 14 juin 2009 19:15:39)

Thanks for the help guys!

  • Mel