ハイフンをソートする方法

ハイフンをソートする方法

これは私の命令です。

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つのスペースしか必要ありません。

どんなアイデアがありますか?ありがとう

答え1

nl欲しいと思う左揃え、フィールドの幅は 3 です。

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

あるいは、区切り文字列に先行スペースを明示的に含める場合は、フィールドの幅は 2 です。

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

答え2

使用する代わりに

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

行番号を印刷するには、代わりに次のコマンドを使用しawkて文字列形式を指定できますprintf

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

答え3

私の心に浮かんだ最初のアイデアは、sed(GNU)を次のように使用することでした。

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

コマンドが終了する前に追加されました>>

関連情報