「|」で区切られた2つの数値シーケンスを生成します。

「|」で区切られた2つの数値シーケンスを生成します。

seq私はbash(CentOS 5)を使用しており、この出力を生成したいと思います(またはその両方を使用できると仮定しますかecho?)。

1|1,
2|2,
3|3,
....
31|31,
32|32,
33|33,

私は例を見つけるために2時間以上インターネット検索をしてきましたが、seq私が思いつくことができる最も近いのは

echo {1..31}..{1..31} | tr ' ' '\n'

これは私が望むものをほとんど提供しますが、..を|に変更すると混乱します。または「|」)。

必要な2番目の数字は、降順年と同じ形式で生成されます。

2015|2015,
2014|2014,
...
1938|1938,
1937|1937,
1936|1936,

両方のリストを手動で入力しましたが、今後の要件と学習のためにコマンドラインでこれを行う方法についてご意見をお寄せいただきありがとうございseqますecho

ベストアンサー1

以下を行う必要があります。

seq 0 31 | awk '{ print $1"|"$1", " }'

降順:

seq 31 -1 0 | awk '{ print $1"|"$1", " }'

これらは awk を使用して、パイプ文字で区切られた各行の数をコピーします。

または純粋なbashを使用して下さい(意見でDopeGhotiによって提供されるように)。

for n in {0..31}; do printf "%d|%d,\n" $n $n; done
for n in {31..0}; do printf "%d|%d,\n" $n $n; done

おすすめ記事