Different methods to change the delimiter of a file

In this article, we will see different methods to change the delimiter of a file content, for example: from a comma to a colon.

Let’s use the following file as example:
Linux, 1, A
and, 2, B
Life, 3, C
Debian, 4, D
Mint, 5, E
Ubuntu, 6, F

1. Use awk

awk ‘$1=$1′ FS=”,” OFS=”:” file

In this command, FS and OFS are the special variables of awk, which means Input Field separator and Output field separator respectively. FS is assigned to the comma which is the input field separator, OFS is the output field separator which is the colon. $1=$1 actually does nothing here. It exists because there just should be some change in the data for awk to change the delimiter

2. Use sed

Here is the command with sed to do the task:

sed ‘s/,/:/g’ file

The character ‘s’in this command stands for substitution. What follows ‘s’ is the character, word or regular expression to be replaced with the next character. And the character ‘g’ here means that all commas in the files will be replaces with colons

3. Use awk with the gsub function

 gsub means global substitution. It is somehow similar to the sub function. The difference is that, when sub only replaces the first occurrence, gsub will replace all the occurrences:

awk ‘gsub(“,”,”:”)’ file

4. Use tr

tr can be used for many things, ie to delete, to squeeze or to replace certain characters. In the following command, it is used to replace the commas with the colons:
tr ‘,’ ‘:’ < file

5. Use perl

The command with perl is somehow similar to that with sed:
perl -pe ‘s/,/:/g’ file

6. A more complicated method with perl

perl -F, -ane ‘print join “:”,@F;’ file

In this command, the elements of the line are autosplit (with the option -a) and stored into the default array(@F). We then join the array elements using colons and get them printed.

Read more …

Comments are closed.