Saya bingung dengan masalah yang tampaknya mudah diperbaiki ini ... well, untuk sementara waktu.
Berikut ini contoh keluaran dari file yang perlu saya edit:
$cat file
George Washington
Geneva Convention
123,281,029 USD
342,019,929 EUR
Saya perlu menghapus spasi antara "George Washington" dan "Konvensi Jenewa", tetapi bukan spasi antara "123.281.029 USD" atau "342.019.929 EUR".
Pada dasarnya, tujuan saya di sini adalah untuk hanya menghapus spasi antara kata-kata dalam satu baris SAJA jika tidak ada angka di baris itu.
Saya sudah mencoba mengedit file melalui grep -v [0-9] $file | sed 's/ //'
, tetapi satu-satunya cara yang akan berhasil adalah jika saya output ke file lain, tetapi itu berarti mengecualikan semua baris dengan angka dari file lama ke file baru, yang bukan yang saya butuhkan ..
Saya sudah mencoba beberapa loop yang cukup konyol dengan grep dan sed
tetapi sepertinya tidak ada yang berhasil.
Sekali lagi, ini adalah contoh output dari file:
$cat file
George Washington
Geneva Convention
123,281,029 USD
342,019,929 EUR
Inilah output yang saya inginkan:
$cat file
GeorgeWashington
GenevaConvention
123,281,029 USD
342,019,929 EUR
Menggunakan
perl
:sumber
Untuk pendekatan yang lebih umum, hapus hanya spasi yang berada di antara dua huruf. Dengan begitu ia dapat bekerja bahkan jika garis memiliki angka, itu hanya mengabaikan spasi di sekitar angka:
Sebagai contoh, itu akan berubah
George and Harry 12 EUR
menjadiGerogeandHArry 12 EUR
dan masih berfungsi dengan benar untuk kasus-kasus dalam contoh Anda.sumber