web-dev-qa-db-ja.com

ハイフンを揃える方法

これが私の命令です

echo -e  "Test sur la vie, l'univers et le reste \n " >test42 |grep '42' questions.txt | nl -w1  -s '  - ' | cut -d "/" -f 1 >> test42

これが出力です

Test sur la vie, l'univers et le reste 

1  - Quel est le numéro de la dernière armure de Tony Stark dans le film Iron Man 3 ?
2  - Quel est l’angle visuel entre la partie colorée d’un arc-en-ciel et le point central de son arc ?
3  - Quel est le score maximal réalisable à titre individuel au cours des Olympiades internationales de mathématiques ?
4  - À combien de gallons un baril de pétrole est-il équivalent ?
5  - Quel est le nombre d’années de mariage des noces de nacre ?
6  - Quelle est la résistance mécanique en GPa du graphène ?
7  - Combien d'éclipses de soleil et de lune durant un saros ?
8  - Quel est le numéro de l’inode du répertoire root dans un système de fichier reiser4 ?
9  - Combien la Bible de Gutenberg comporte de lignes de texte par colonne ?
10  - Quel est le titre de l'épisode 3X07 de la série télévisée Doctor Who ?
11  - Quel est le numéro atomique du molybdène, un métal de transition ?

しかし、結果は次のようになります

Test sur la vie, l'univers et le reste

1  - Quel est le numéro de la dernière armure de Tony Stark dans le film Iron Man 3 ?
2  - Quel est l’angle visuel entre la partie colorée d’un arc-en-ciel et le point central de son arc ?
3  - Quel est le score maximal réalisable à titre individuel au cours des Olympiades internationales de mathématiques ?
4  - À combien de gallons un baril de pétrole est-il équivalent ?
5  - Quel est le nombre d’années de mariage des noces de nacre ?
6  - Quelle est la résistance mécanique en GPa du graphène ?
7  - Combien d'éclipses de soleil et de lune durant un saros ?
8  - Quel est le numéro de l’inode du répertoire root dans un système de fichier reiser4 ?
9  - Combien la Bible de Gutenberg comporte de lignes de texte par colonne ?
10 - Quel est le titre de l'épisode 3X07 de la série télévisée Doctor Who ?
11 - Quel est le numéro atomique du molybdène, un métal de transition ?
12 - Quelle est la taille, en mètre, de l'obélisque inachevé dans la carrière d'Assouan en Égypte ?

1から9までの数字とハイフンの間に2つのスペースが必要です。しかし、ハイフンと10番以上の間に1つのスペースがあれば十分です。

何か考えはありますか?ありがとう

2
david b.k

nl左揃え、フィールド幅を3にしたいようです。

... | nl -nln -w3 -s '- '

または、区切り文字列に先頭のスペースを明示的に含める場合は、フィールド幅2と同等です。

.... | nl -nln -w2 -s ' - '
4
steeldriver

使用する代わりに

… | nl -w1 -s '  - ' | …

行番号を出力するには、代わりにawkを使用し、文字列をprintfでフォーマットします。

… | awk '{printf "%-2s - %s\n",NR,$0}' | …
2
Freddy

頭に浮かぶ最初のアイデアは、(GNU)sedを次のように使用することです。

sed -E 's/^([1-9])  -/\1   -/'

コマンドの最後、>>の前に追加されます。