Skip to content
Advertisement

Empty string as a output field seperator for Cut

How can I use cut with --output-delimiter=""? I want to join two columns using cut.

I tried the following command. However cat -v shows that there are non printable characters. Specifically “^@“. Any suggestions to how can I overcome this?

JavaScript

This is the content of my file

011,IBM,Palmisano,t,t,t
012,INTC,Otellini,t,t,t
013,SAP,Snabe,t,t,t
014,VMW,Maritz,t,t,t
015,ORCL,Ellison,t,t,t
017,RHT,Whitehurst,t,t,t



When i run my command I’m seeing
Palmisano^@t
Otellini^@t
Snabe^@t
Maritz^@t
Ellison^@t
Whitehurst^@t

Expected output: Basically I want to exclude ^@ in the output

Palmisanot
Otellinit
Snabet
Maritzt
Ellisont
Whitehurstt

Thank you.

Advertisement

Answer

The output delimiter is not an empty string, but probably the NULL character. You might want to try

JavaScript

(Assuming your shell supports $'...'-quoting; bash and zsh are fine here, not sure about others).

edit:

cut apparently puts the NULL character if the output separator is set to the empty string. I do not see a way around it.

If awk is an acceptable solution, this will do the trick:

JavaScript

If you want to be more verbose and explicit:

JavaScript

FS="," sets the field separator to ,. OFS="" sets the Output Field Separator to the empty string.

User contributions licensed under: CC BY-SA
5 People found this is helpful
Advertisement