concat
指定された数の指定された文字を含む行が必要です。よくわかりません。python
orでは簡単ですが、ループやを使わずに /// を使ってこれを行いたいとruby
思います。 1行に何文字が含まれているのか、次の行に同じ数の文字が含まれているのかを計算する必要があります。perl
sed
awk
bash
uniq -c
plus
concat
a+a
a+a
a+a+a
a+a+a
a+a+a+a
a+a+a+a
出力は次のようになります。
a+a + a+a
a+a+a + a+a+a
a+a+a+a + a+a+a+a
ベストアンサー1
awk -F "+" 'NR%2{nf=NF;l=$0;next}{sep=(nf==NF?" + ":RS);printf "%s%s%s\n",l,sep,$0}' file
ライン別分析のために拡張してみましょう。
awk -F "+" '
NR%2{nf=NF;l=$0;next}
{
sep=(nf==NF?" + ":RS)
printf "%s%s%s\n",l,sep,$0
}
' file
- フィールド区切り記号をに設定します
+
。 - 行番号が奇数(
NR%2
)の場合は、フィールド数を入力しnf
てレコード全体を入力しますl
。 - その他、
- この行のフィールド数が前の行のフィールド数と等しいかどうかを設定します
sep=" + "
。それ以外の場合は設定しますsep=RS
(RS
レコード区切り文字は改行です)。 l
、sep
および$0
改行文字を印刷します。
- この行のフィールド数が前の行のフィールド数と等しいかどうかを設定します