Saya memiliki file teks besar dengan string dibatasi ruang (2-5). String dapat berisi "'" atau "-". Saya ingin mengganti katakanlah ruang kedua dengan pipa.
Apa cara terbaik untuk pergi?
Menggunakan sed saya memikirkan ini:
sed -r 's/(^[a-z'-]+ [a-z'-]+\b) /\1|/' filename.txt
Ada ide lain / lebih baik / lebih sederhana?
linux
command-line
sed
awk
dnkb
sumber
sumber
sed
file info: "Catatan: standar POSIX tidak menentukan apa yang harus terjadi ketika Anda mencampurg' and NUMBER modifiers, and currently there is no widely agreed upon meaning across
implementasi sed. Untuk GNU` sed ', interaksi didefinisikan sebagai: abaikan kecocokan sebelum NUMBER, dan kemudian cocokkan dan ganti semua cocok dari NUMBERth pada. "sed
. Saya tidak yakin saya harus berterima kasih kepada Anda karena telah membuat sayased
lebih berguna, tetapi saya tetap akan melakukannya. ;)Apakah Anda mencoba versinya? Apa itu bekerja? Karena saya pikir pada dasarnya ide yang bagus. Saya akan melakukan sedikit berbeda, meskipun:
Ini akan menerima karakter apa pun dalam kata yang bukan spasi, dan akan menerima lebih dari satu spasi di antara dua kata pertama.
sumber