Rumah  >  Artikel  >  Tutorial sistem  >  Panduan Pengendalian Fail Linux: Petua untuk Memisahkan dan Menyusun Semula Fail

Panduan Pengendalian Fail Linux: Petua untuk Memisahkan dan Menyusun Semula Fail

王林
王林ke hadapan
2024-01-06 16:09:511164semak imbas
Pengenalan Linux mempunyai beberapa program utiliti untuk membelah fail. Jadi mengapa anda mahu membelah fail? Satu kes penggunaan adalah untuk memisahkan fail besar kepada saiz yang lebih kecil supaya ia boleh dimuatkan pada medium storan yang lebih kecil, seperti batang USB. Memindahkan fail melalui USB juga merupakan helah yang baik apabila anda terperangkap dengan FAT32 (saiz fail maksimum ialah 4GB) dan fail anda lebih besar daripada itu. Kes penggunaan lain ialah mempercepatkan pemindahan fail rangkaian, kerana pemindahan selari bagi fail kecil biasanya lebih pantas.

Kami akan belajar cara menggunakan csplit, split dan cat untuk menyusun semula fail sebelum menggabungkannya bersama-sama. Operasi ini berguna untuk sebarang jenis fail: teks, gambar, fail audio, fail imej ISO, dsb.

Pisah fail menggunakan csplit

csplit ialah salah satu arahan kecil yang menyeronokkan yang sentiasa bersama anda dan anda tidak boleh hidup tanpanya sebaik sahaja anda mula menggunakannya. csplit membahagikan satu fail kepada berbilang fail. Contoh ini menunjukkan penggunaan paling mudah, yang membahagikan fail foo.txt kepada tiga fail, menggunakan nombor baris 17 dan 33 sebagai titik pisah:

$ csplit foo.txt 17 33
2591
3889
2359

csplit mencipta tiga fail baharu dalam direktori semasa dan mencetak saiz fail baharu dalam bait. Secara lalai, setiap fail baharu dinamakan xx_nn:

$ ls
xx00
xx01
xx02

Anda boleh melihat sepuluh baris pertama setiap fail baharu menggunakan arahan kepala:

$ head xx*
==> xx00 <== Foo File by Carla Schroder Foo text Foo subheading More foo text ==> xx01 <== Foo text Foo subheading More foo text ==> xx02 <==
Foo text
Foo subheading
More foo text

Bagaimana jika anda ingin membahagikan fail kepada berbilang fail yang mengandungi bilangan baris yang sama? Anda boleh menentukan bilangan baris dan kemudian meletakkan bilangan ulangan dalam pendakap kerinting. Contoh ini mengulangi pemisahan 4 kali dan membuang bakinya ke dalam fail terakhir:

$ csplit foo.txt 5 {4}
57
1488
249
1866
3798

Anda boleh menggunakan kad bebas asterisk untuk memberitahu csplit supaya mengulangi pemisahan sebanyak mungkin. Ini kedengaran keren, tetapi mungkin gagal jika fail tidak boleh dibahagikan sama rata (terjemahan LCTT: versi csplit yang lebih rendah tidak menyokong parameter ini):

$ csplit foo.txt 10 {*}
1545
2115
1848
1901
csplit: '10': line number out of range on repetition 4
1430

Tingkah laku lalai adalah untuk memadam fail output apabila ralat berlaku. Anda boleh menyelesaikan masalah ini dengan pilihan -k, yang tidak akan memadamkan fail output apabila terdapat ralat. Tingkah laku lain ialah setiap kali anda menjalankan csplit, ia akan menimpa fail yang dibuat sebelum ini, jadi anda perlu menyimpannya secara berasingan dengan nama fail baharu. Gunakan --prefix= _prefix_ untuk menetapkan awalan fail yang berbeza:

$ csplit -k --prefix=mine foo.txt 5 {*}
57
1488
249
1866
993
csplit: '5': line number out of range on repetition 9
437
$ ls
mine00
mine01
mine02
mine03
mine04
mine05

Pilihan -n boleh digunakan untuk menukar bilangan digit yang digunakan kepada nombor fail (lalai ialah 2 digit):

$ csplit -n 3 --prefix=mine foo.txt 5 {4}
57
1488
249
1866
1381
3798
$ ls
mine000
mine001
mine002
mine003
mine004
mine005

"c" dalam csplit bermaksud konteks. Ini bermakna anda boleh memisahkan fail berdasarkan mana-mana corak padanan atau ungkapan biasa yang bijak. Contoh di bawah membahagikan fail kepada dua bahagian. Fail pertama berakhir pada baris yang mengandungi kejadian pertama "fie", dan fail kedua bermula pada baris yang mengandungi "fie".

$ csplit foo.txt /fie/

Pisah fail setiap kali "fie" muncul:

$ csplit foo.txt /fie/ {*}

Pisah fail pada lima kejadian pertama "fie":

$ csplit foo.txt /fie/ {5}

Salin hanya jika kandungan bermula dengan baris yang mengandungi "fie", dan tinggalkan apa-apa yang terdahulu:

$ csplit myfile %fie%
Pisah fail kepada saiz yang berbeza

split serupa dengan csplit. Ia membahagikan fail kepada saiz tertentu, yang bagus apabila anda membahagikan fail besar kepada fail multimedia kecil atau menggunakan pemindahan rangkaian. Saiz lalai ialah 1000 baris:

$ split foo.mv
$ ls -hl
266K Aug 21 16:58 xaa
267K Aug 21 16:58 xab
315K Aug 21 16:58 xac
[...]

Ia dibahagikan kepada saiz yang sama, tetapi anda boleh menentukan mana-mana saiz yang anda mahukan. Dalam contoh ini ialah 20M bait:

$ split -b 20M foo.mv

Singkatan unit dimensi ialah K, M, G, T, P, E, Z, Y (kuasa 1024) atau KB, MB, GB, dsb. (kuasa 1000).

Pilih awalan dan akhiran anda sendiri untuk nama fail:

$ split -a 3 --numeric-suffixes=9 --additional-suffix=mine foo.mv SB
240K Aug 21 17:44 SB009mine
214K Aug 21 17:44 SB010mine
220K Aug 21 17:44 SB011mine
Pilihan

-a mengawal kedudukan digit nombor. --numeric-suffixes menetapkan nilai permulaan untuk penomboran. Awalan lalai ialah x, anda juga boleh menetapkan awalan yang berbeza dengan memasukkannya selepas nama fail.

Gabungkan fail berpecah

Anda mungkin mahu menyusun semula fail anda pada satu ketika. Perintah kucing yang biasa digunakan digunakan di sini:

$ cat SB0* > foo2.txt

Kad bebas asterisk dalam contoh akan sepadan dengan semua fail bermula dengan SB0, yang mungkin tidak memberikan hasil yang anda inginkan. Anda boleh menggunakan kad bebas tanda soal untuk padanan yang lebih tepat, menggunakan satu tanda soal bagi setiap aksara:

$ cat SB0?????? > foo2.txt

Seperti biasa, sila rujuk manual dan halaman maklumat yang berkaitan untuk pilihan arahan yang lengkap.

Atas ialah kandungan terperinci Panduan Pengendalian Fail Linux: Petua untuk Memisahkan dan Menyusun Semula Fail. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:linuxprobe.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam