私はこのようなリストを持っています:
sharename:shareX
comment:commentX
sharename:shareY
comment:commentY
sharename:shareZ
comment:commentZ
等々...
そして、これは私がリストをどのように見せたいかです:
shareX;commentX
shareY;commentY
shareZ;commentZ
どうすればbashでそれを達成できますか?
私はこのようなリストを持っています:
sharename:shareX
comment:commentX
sharename:shareY
comment:commentY
sharename:shareZ
comment:commentZ
等々...
そして、これは私がリストをどのように見せたいかです:
shareX;commentX
shareY;commentY
shareZ;commentZ
どうすればbashでそれを達成できますか?
ピュアバッシュ:
IFS=':'
while read a b; read c d; do # read 2 lines
echo -e "$b:$d"
done < "$infile"
一発ギャグ:
odd=0; for i in `cat list | cut -d":" -f2`; do if [ $odd -eq 0 ]; then echo -ne $i; odd=1; else echo $i; odd=0; fi; done
フォーマット:
odd=0;
for i in `cat list | cut -d":" -f2`;
do
if [ $odd -eq 0 ];
then
echo -ne $i";";
odd=1;
else
echo $i;
odd=0;
fi;
done
テストされていない、sed部分が間違っている可能性があります
paste -d ';' - - < filename | sed -r 's/(^|;)[^:]:/\1/g'
これはあなたのために働くかもしれません:
sed '$!N;s/[^:]*:\([^\n]*\)\n[^:]*:/\1;/' file
shareX;commentX
shareY;commentY
shareZ;commentZ