テキストファイルに行番号とタブ文字を追加する方法

テキストファイルに行番号とタブ文字を追加する方法

使ってみよう

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

ただし、タブ文字を追加するのではなく、実際に行番号の後に「\ t」テキストを追加します。私が編集しているファイルはCSVファイルで、ここでは最初にIDを持つ新しい列を追加したいと思います。

ベストアンサー1

bashやzshなどの最新のシェルを使用している場合は、シェルを使用してそれを評価して$実際\tのタブに置き換えます。

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

それにもかかわらず、出力を確認すると、デフォルトの区切り文字がタブであることがわかります。

$ 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    

実際、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

おすすめ記事