1行の値を番号順に複数行に変換

1行の値を番号順に複数行に変換

たとえば、次の変数にはこの値が含まれます。

echo $SERVERS


server1,server2,server3,server4,server5

別のラインにパイプしたい場合は、次のようにします。

echo $SERVERS | tr ',' '\n'

server1
server2
server3
server4
server5

( echo $SERVERS | tr ',' '\n' | ..... )今、私は次の予想される結果を印刷するために別のパイプを追加したいと思います。

1  ………………  server1
2  ………………… server2
3  ………………… server3
4  ………………… server4
5  ………………… server5
6  ………………  server6
7  ………………… server7
8  ………………… server8
9  ………………… server9
10 ………………… server10
11 ………………… server11
12 ………………… server12

どうすればいいかわかりませんが、ncosなどのコマンドを使用することもできます。

どんな提案がありますか?

ベストアンサー1

awkを使用してください:

$ servers='server1,server2,server3,server4,server5'

$ awk -v RS=, '{print NR "........" $0}' <<<"$servers"
1........server1
2........server2
3........server3
4........server4
5........server5

または、左のパディングを使用して行番号を出力します。

awk -v RS=, '{printf "%3d........%s\n",NR,$0}' <<<"$servers"

3(サーバーリストのサイズに応じて適切なフィールド幅を選択してください)。

おすすめ記事