Se você estiver usando um shell moderno como bash ou zsh, use $
para que o shell avalie \t
e o substitua por uma guia real:
nl -ba -s $'\t' full_media > full_media2
Mesmo assim, se você examinar a saída, parece que o separador padrão é uma guia:
$ nl -ba -s $'\t' ~/at.sh | od -c
0000000 1 \t n o h u p s g
$ nl -ba ~/at.sh | od -c
0000000 1 \t n o h u p s g
De fato, o separador padrão é tab, conforme especificado pelo POSIX. De man nl
:
-s sep
Specify the characters used in separating the line number and
the corresponding text line. The default sep shall be a <tab>.
Para adicionar uma coluna ao CSV, tente usar o Python:
#! /usr/bin/env python2
from sys import stdin, stdout
import csv
csvin = csv.reader(stdin, delimiter='\t')
csvout= csv.writer(stdout, delimiter='\t')
count = 1
for row in csvin:
csvout.writerow ([count] + row)
count = count + 1
Salve como um script (digamos nl.py
) e execute:
python2 nl.py < full_media > full_media2