nlやseqに対応するアルファベットはありますか?

nlやseqに対応するアルファベットはありますか?

ファイルがありますが、数字の代わりに「アルファベット」(単純なASCII a、b、cなど)を使用して行に番号を付けたいと思います。では、どこでできますか?

nl somefile

私はこのようなことをしたい:

abc somefile

次の出力を取得します。

a line 1 of file
b line 2 of file
c line 3 of file
...

文字に対応する文字でもseq役に立ちます。これを使用してpaste行の接頭辞を付けることができます。

簡単にするために、私のファイルは26行以下です。したがって、abcx、y、z、aa、ab、ac...などの文字を折り返す必要はありません。

ベストアンサー1

使用とbash:pasteheadwcprintf

# generate somefile
$ printf 'line %s of file\n' {1..5} > somefile

# then paste
$ paste -d ' ' <(printf '%s\n' {a..z}) somefile
a line 1 of file
b line 2 of file
c line 3 of file
d line 4 of file
e line 5 of file
f
g
...

a-e生成する必要がある文字数(この場合)がわからないため、アルファベット全体を生成し、できるだけ多くの行をマージしてsomefile関数として書くことができます。

function abc() { paste -d ' ' <(printf '%s\n' {a..z} | head -n $(wc -l <"$1")) "$1"; }

出力:

$ abc somefile
a line 1 of file
b line 2 of file
c line 3 of file
d line 4 of file
e line 5 of file

おすすめ記事