Как добавить, что номер строки следует вкладкой к текстовому файлу

Здесь является моим:

menuentry "FreeBSD" --class freebsd --class bsd --class os {
 insmod ufs2
 insmod bsd
 set root=(hd0,1)
 kfreebsd /boot/kernel/kernel
 kfreebsd_loadenv /boot/device.hints
 set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ada0s1a
 set kFreeBSD.vfs.root.mountfrom.options=rw
 set kFreeBSD.hw.psm.synaptics_support=1
}
2
09.02.2015, 11:23
1 ответ

Если вы используете современную оболочку вроде bash или zsh, используйте $, чтобы оболочка оценивала \t и заменяла ее на актуальную tab:

nl -ba -s $'\t' full_media > full_media2

Даже если вы посмотрите на результат, он выглядит так, как будто сепаратор по умолчанию - это tab:

$ 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    

Действительно, сепаратор по умолчанию - это tab, как указано в POSIX. Из 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>.

Чтобы добавить колонку в CSV, попробуйте использовать 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

Сохраните его как скрипт (скажем nl.py) и запустите:

python2 nl.py < full_media > full_media2
4
27.01.2020, 22:00

Теги

Похожие вопросы