Android

Memotong perintah Linux dengan contoh

Belajar Perintah Dasar LINUX (New,Copy,Move,Delete Direktori) || Bagian 2.2 Membangun Server Linux

Belajar Perintah Dasar LINUX (New,Copy,Move,Delete Direktori) || Bagian 2.2 Membangun Server Linux

Isi kandungan:

Anonim

Terdapat banyak utiliti yang terdapat dalam sistem Linux dan Unix yang membolehkan anda memproses dan menapis fail teks. Potong adalah utiliti baris perintah yang membolehkan anda memotong bahagian garisan dari fail tertentu atau data paip dan mencetak hasilnya kepada output standard. Ia boleh digunakan untuk memotong bahagian-bahagian garisan dengan pemisah, kedudukan byte, dan watak.

Dalam tutorial ini, kami akan menunjukkan kepada anda cara menggunakan arahan memotong Linux melalui contoh-contoh praktikal dan penjelasan terperinci tentang pilihan cut yang paling biasa.

Bagaimana Menggunakan Perintah Potong

Sintaks untuk arahan potong adalah seperti berikut:

cut OPTION……

Apabila menggunakan perintah potongan, anda mesti menggunakan satu dan hanya satu daripada pilihan berikut:

  • -f ( --fields=LIST ) - Pilih dengan menentukan bidang, satu set medan, atau pelbagai medan. Ini adalah pilihan yang paling biasa digunakan. -b ( --bytes=LIST ) - Pilih dengan menentukan satu byte, satu set bait, atau julat bait. -c ( --characters=LIST ) - Pilih dengan menentukan aksara, satu set aksara, atau pelbagai aksara.

Pilihan lain ialah:

  • -d ( --delimiter ) - Tentukan pembatas yang akan digunakan dan bukan pemisah lalai "TAB". --complement - melengkapkan pemilihan. Apabila menggunakan pemotongan pilihan ini akan memaparkan semua bait, aksara atau medan kecuali yang dipilih. -s ( --only-delimited ) - Dengan memotong lalai akan mencetak mana-mana garisan yang tidak mengandungi watak pembatas. Apabila menggunakan pilihan ini, potongan tidak akan mencetak garis yang tidak mengandungi delimiters. --output-delimiter - Lalai adalah dengan menggunakan pembatas masukan sebagai pembatas output. Pilihan ini membolehkan anda menentukan rentetan penghapusan output yang berbeza.

Perintah potong boleh menerima nama FILE masukan sifar atau lebih. Jika tiada FILE ditentukan, atau apabila FILE - , potong akan membaca input standard.

Argumen LIST yang diluluskan kepada pilihan -f , -b , dan -c boleh menjadi integer, multiple integer yang dipisahkan oleh koma, pelbagai integer, atau pelbagai integer yang dipisahkan oleh koma. Setiap julat boleh menjadi salah satu daripada yang berikut:

  • N medan N , bait atau aksara, bermula dari 1. N- dari medan Nth, byte atau aksara, hingga akhir baris. NM dari Nth ke medan Mth, bait, atau aksara. -M dari yang pertama ke medan Mth, byte atau aksara.

Cara Potong Mengikut Lapangan

Perintah potong kebanyakannya digunakan untuk memaparkan bidang terpilih dari setiap baris fail atau input standard. Apabila tidak ditentukan pemisah lalai adalah "TAB".

Dalam contoh di bawah, kami akan menggunakan fail berikut. Semua medan dipisahkan oleh tab.

test.txt

245:789 4567 M:4540 Admin 01:10:1980 535:763 4987 M:3476 Sales 11:04:1978

Untuk memaparkan medan ke-1 dan ke-3 yang anda akan gunakan:

cut test.txt -f 1, 3

245:789 M:4540 535:763 M:3476

Atau jika anda ingin memaparkan dari 1 hingga ke 4 bidang:

cut test.txt -f -4

245:789 4567 M:4540 Admin 535:763 4987 M:3476 Sales

Bagaimana cara memotong berdasarkan pembatas

Untuk memotong berdasarkan pemisah menggunakan pilihan -d diikuti oleh pembatas yang anda ingin gunakan.

Sebagai contoh untuk memaparkan bidang 1 dan 3 dengan menggunakan ":" sebagai pembatas, anda akan menaip:

cut test.txt -d ':' -f 1, 3

245:4540 Admin 01 535:3476 Sales 11

Anda boleh menggunakan watak tunggal sebagai pembatas. Dalam contoh berikut, kami menggunakan watak ruang sebagai pemisah dan mencetak medan ke-2:

echo "Lorem ipsum dolor sit amet" | cut -d ' ' -f 2

ipsum

Bagaimana untuk melengkapkan pemilihan

Untuk melengkapi senarai senarai --complement pilihan --complement . Ini akan mencetak hanya medan yang tidak dipilih dengan pilihan -f .

Perintah berikut akan mencetak semua medan kecuali ke-1 dan ke-3:

cut test.txt -f 1, 3 --complement

4567 Admin 01:10:1980 4987 Sales 11:04:1978

Bagaimana menentukan pembahagian output

Untuk menentukan --output-delimiter output gunakan pilihan --output-delimiter . Sebagai contoh, untuk menetapkan pembahagi output kepada _ anda akan gunakan:

cut test.txt -f 1, 3 --output-delimiter='_'

245:789_M:4540 535:763_M:3476

Cara memotong Bytes dan Watak

Sebelum pergi lagi, mari kita membuat perbezaan antara bait dan aksara.

Satu byte adalah 8 bit dan boleh mewakili 256 nilai yang berbeza. Apabila piawaian ASCII ditubuhkan, ia mengambil kira semua huruf, nombor dan simbol yang diperlukan untuk bekerja dengan bahasa Inggeris. Jadual karakter ASCII mempunyai 128 aksara dan setiap aksara diwakili oleh satu byte. Apabila komputer mula menjadi popular di seluruh dunia, syarikat teknologi mula memperkenalkan pengekodan aksara baru untuk bahasa yang berlainan dan untuk bahasa yang mempunyai lebih daripada 256 aksara, pemetaan mudah 1 hingga 1 tidak dapat dilakukan. Ini membawa kepada masalah yang berbeza seperti berkongsi dokumen atau menyemak imbas laman web dan piawaian Unicode baru yang boleh mengendalikan kebanyakan sistem penulisan dunia diperlukan. UTF-8 telah dicipta untuk menyelesaikan masalah ini. Dalam UTF-8, tidak semua watak diwakili dengan 1 bait. Watak boleh diwakili dengan 1 byte hingga 4 bait.

Dalam contoh berikut, kami menggunakan watak ü yang mengambil 2 bait.

Gunakan pilihan -b ( --bytes ) untuk memotong bahagian baris dengan menyatakan kedudukan byte.

Pilih bait ke-5:

echo 'drüberspringen' | cut -b 5

b

Pilih 5, 9 dan 13 bait:

echo 'drüberspringen' | cut -b 5, 9, 13

bpg

Pilih julat dari 1 hingga 5 bait:

echo 'drüberspringen' | cut -b 1-5

drüb

Pada masa menulis artikel ini, versi potongan dibundel dalam inti GNU tidak mempunyai pilihan untuk dipotong oleh aksara. Apabila menggunakan pilihan potongan -c berkelakuan sama seperti ketika menggunakan pilihan -b .

Contoh Potong

Perintah potong biasanya digunakan dalam kombinasi dengan arahan lain melalui paip. Berikut adalah beberapa contoh.

Dapatkan senarai semua pengguna

Output perintah getent passwd diluluskan untuk cut yang mencetak 1 yang diajukan menggunakan : sebagai pembatas.

getent passwd | cut -d ':' -f1

Lihat 10 arahan paling kerap digunakan

Contoh pemotongan berikut digunakan untuk melepaskan 8 bait pertama dari setiap baris output arahan history .

history | cut -c8- | sort | uniq -c | sort -rn | head

Kesimpulannya

Sekarang anda harus mempunyai pemahaman yang baik mengenai cara menggunakan perintah cut Linux. Walaupun sangat berguna, perintah potong mempunyai beberapa batasan. Ia tidak menyokong menentukan lebih daripada satu aksara sebagai pembatas dan ia tidak menyokong berbilang desimeter.

memotong terminal