私はこのようなファイルを持っています
line1
this is line1
line2
this is line2
line3
this is line3
awkまたはsedを使用して、すべての代替行で末尾の改行文字を削除し、このようにマージしたかった
line1: this is line1
line2: this is line2
line3: this is line3
awkまたはsedを使用してそれを行うにはどうすればよいですか
$ cat input
line1
this is line1
line2
this is line2
line3
this is line3
$ awk 'NR%2==1 {prev=$0} NR%2==0 {print prev ": " $0} END {if (NR%2==1) {print $0 ":"}}' input
line1: this is line1
line2: this is line2
line3: this is line3
$
使用sed
:
sed -n '${s/$/:/p};N;s/\n/: /p' inputFile
元のファイルのバックアップを使用したインプレース編集の場合、
sed -n -i~ '${s/$/:/p};N;s/\n/: /p' inputFile
これはあなたのために働くかもしれません:
sed -i '$!N;s/\n/: /' file
sed 's/^\(line.*\)/\1:/' filename | paste - -
そしてPerlアナログ:
perl -ape 's/^(line.+)\n/$1: /' filename