Saya memiliki file .txt dengan nomor yang dipesan seperti ini (pada baris yang sama):
106849_01373 106849_01967 106850_00082 23025.7_01059
Saya ingin mengonversinya seperti itu:
106849_01373
106849_01967
106850_00082
23025.7_01059
Saya tidak tahu perintah mana yang harus digunakan. Dapatkah seseorang membantu saya dengan ini?
command-line
text-processing
Annemieke Smet
sumber
sumber
Cukup mudah dengan
tr
:Contoh:
sumber
jawaban heemayl adalah cara untuk pergi, namun inilah alternatif menggunakan Perl:
-l
: mengaktifkan pemrosesan akhir baris otomatis. Ini memiliki dua efek terpisah. Pertama, secara otomatis chomps $ / (pemisah rekaman input) saat digunakan dengan -n atau -p. Kedua, ia menetapkan $ \ (pemisah catatan output) untuk memiliki nilai octnum sehingga setiap pernyataan cetak akan memiliki pemisah yang ditambahkan kembali. Jika octnum dihilangkan, tetapkan $ \ ke nilai saat ini $ /.-a
: mengaktifkan mode autosplit saat digunakan dengan -n atau -p. Perintah split implisit ke array @F dilakukan sebagai hal pertama di dalam loop implisit saat diproduksi oleh -n atau -p.-n
: menyebabkan Perl untuk mengasumsikan loop berikut di sekitar program Anda, yang membuatnya iterate atas argumen nama file agak seperti sed -n atau awk:-e
: dapat digunakan untuk memasukkan satu baris program;$,="\n"
: mengatur pemisah bidang keluaran ke baris baru;print(@F)
: mencetak bidang yang dipisahkan oleh pemisah bidang keluaran.sumber
AWK
pendekatan. Pada dasarnya mengubah pemisah output untuk bidang, dan perulangan. File uji adalah contoh Anda yang ditempel berulang-ulang dengan ENDLINE di bagian akhirsumber
Menggunakan
sed
:sumber
Saya hanya menambahkan solusi Python untuk bersenang-senang:
Perintah ini menjalankan skrip Python 3 baris satu dalam 'tanda kutip tunggal' dengan nama file yang ingin Anda konversi sebagai argumen pada akhirnya. Sintaksnya seperti ini:
Skrip 1-baris yang kami gunakan adalah ini (diperluas ke beberapa baris untuk kejelasan):
Itu mengimpor
sys
modul untuk membaca argumen baris perintah, mengambil argumen pertama yang diberikan sebagai nama file untuk membuka dan mencetak setiap potongan data yang dipisahkan spasi putih dari file dalam satu baris.sumber