Bagaimana saya bisa mencocokkan spasi putih di sed? Dalam data saya, saya ingin mencocokkan semua 3+ karakter spasi putih berikutnya (ruang tab) dan menggantinya dengan 2 spasi. Bagaimana ini bisa dilakukan?
sed
whitespace
Peter Smit
sumber
sumber
sed
saya harus menggunakan[[:space:]]
karena\s
tidak bekerja untuk saya. Mungkin\s
adalah GNU sed ekstensi?[[:space:]
satu dapat menggunakan[[:blank:]]
yang tidak cocok dengan tab dan spasi horisontal saja (tetapi tidak ada baris baru, tab vertikal dll).Ini berfungsi pada MacOS 10.8:
sumber
sed "s/[[:space:]]\+/ /g"
mencocokkan satu atau lebih spasi.-E
bendera juga.Beberapa versi sed yang lebih lama mungkin tidak dikenali sebagai token pencocokan spasi putih. Dalam hal ini Anda dapat mencocokkan urutan satu atau lebih spasi dan tab dengan '[XZ] [XZ] *' di mana X adalah spasi dan Z adalah tab.
sumber
sumber
sed
apa pun pada sistem apa pun? Jika tidak, mungkin perlu disebutkan di mana ini bekerja dengan cara yang sama dengan jawaban lainnya, supaya kita tahu keterbatasan dan di mana ini mungkin tidak memiliki hasil yang diinginkan.