ファイルの行を2行にグループ化する方法は?

ファイルの行を2行にグループ化する方法は?

次のテキストファイルがあります。

a
b
c
d
e
f
g

これらの行をグループ化して次の出力を取得するにはどうすればよいですか?

a-b
b-c
c-d
d-e
e-f
f-g

シェル(sh、csh、bash)でこれを行う必要があります。

私はこれを見つけました:

cat file | xargs -n2

ただし、最初のグループの最後の要素は2番目のグループの最初の要素になりません。

ベストアンサー1

そしてawk

awk 'NR!=1{print x"-"$0}{x=$0}' file
  • NR!=1最初の行を除くすべての行に適用されます。
  • print x"-"$0間にダッシュを使用して値を印刷します。
  • x=$0設定x(次の繰り返しのため)

おすすめ記事