Saya telah belajar memprogram dengan buku pengantar yang sangat keren untuk C dan saya menulis setiap contoh dan tugas sehingga saya dapat mempelajari sintaksisnya dengan hati. Saya melakukan setiap file secara manual sampai sekarang, tetapi mengklik, memberi nama dan menyimpan semakin melelahkan.
Aku butuh cara untuk membuat beberapa file seperti bspl0001.c
, bspl0002.c
, bspl0003.c
, dll dan menyimpannya dalam direktori "learning_c" atau sesuatu.
Saya seorang noob dengan Ubuntu / Linux dan jujur hanya menjalankannya melalui VirtualBox karena IDE Geany mudah diatur. Jadi, saya tidak benar-benar tahu cara kerja Terminal.
sunting Saya baru saja menemukan diri saya di akun lama ini dan menggelengkan kepala tentang mengapa saya ingin mempelajari sintaksis kode dengan hati. Lucunya, saya hampir selesai dengan studi CS / Math BSc saya. Terima kasih banyak atas bantuannya!
sumber
Jawaban:
Anda dapat melakukan ini dengan perintah-perintah ini:
Penjelasan:
mkdir learning_c
learning_c
di folder saat ini~
cd
perintah (yaitucd Desktop
)cd learning_c
touch bspl{0001..0003}.c
touch
adalah alat untuk membuat file kosong dan memodifikasi cap waktu; kami sedang membuat file kosong.touch myfile
akan membuat file kosong bernamamyfile
.Kode jelek yang mengikuti (
bspl{0001..0003}.c
) disebut ekspansi penjepit . Ini adalah fitur hebat daribash
shell yang memungkinkan Anda membuat daftar panjang kombinasi string arbitrer. Anda dapat mempelajari lebih lanjut tentang ini di Bash Hackers Wiki . Dalam hal ini Anda akan membuat daftar panjang parameter yang akan diteruskan ketouch
. Anda juga dapat menggunakan padanannya yang panjang:Anda dapat mengubah jumlah file: jika Anda ingin 12 file, Anda dapat menjalankan
bspl{0001..0012}.c
.0012
bukan12
) memastikan bahwa output menggunakan 4 digit nol.sumber
touch bspl000{1..3}.c
touch {test,tes2,tes3}.js
touch tes{t,2,3}.js
Buat file bernomor (berikutnya) dengan benar dengan kombinasi tombol pintas
Mengapa membuat semua file sekaligus? Kerugiannya adalah Anda akan memiliki banyak file kosong dan tidak terpakai. Apa yang sebenarnya saya gunakan: tekan kombinasi tombol untuk:
Semua dalam satu penekanan tombol. Dengan begitu Anda mencegah banyak (masih) file yang tidak digunakan; File hanya dibuat jika Anda membutuhkannya.
Versi sederhana di bawah ini (tidak menjalankan langkah 3). Pada setiap penekanan tombol, itu akan membuat file bernomor dengan benar seperti:
Cara Penggunaan
Jalankan skrip dari pintasan: Pengaturan Sistem> Keyboard> Pintasan Khusus. Tambahkan perintah:
sumber
Anda dapat menggunakan kode python berikut, Anda dapat memodifikasinya sesuai dengan kebutuhan Anda.
Simpan kode berikut dengan nama file
filecreator.py
Dan kemudian jalankan dengan perintah ini:
sumber
The
bash
cara adalah baik, tetapi bagaimana jika Anda bekerja dengan shell yang tidak mendukung ekspansi penjepit keriting?touch file{1..10}
misalnya, tidak bekerja untuk sayamksh
. Berikut tiga cara alternatif yang berfungsi terlepas dari cangkang.seq
Pendekatan yang lebih netral shell adalah menggabungkan
seq
perintah untuk menghasilkan urutan angka yang diformat denganprintf
opsi, dan meneruskannya kexargs
perintah. Sebagai contoh,Perl
Tentu saja, Perl, sebagai alat * nix yang lebar, dapat melakukannya juga. Perintah one-liner spesifik yang kita miliki di sini adalah sebagai berikut:
Secara efektif apa yang terjadi di sini adalah kita menentukan 3 argumen baris perintah: awalan nama file, indeks awal, dan indeks akhir. Kemudian kita gunakan
do { } for $ARGV[1] .. $ARGV[2]
untuk beralih ke kisaran angka tertentu. Katakanlah,$ARGV[1]
adalah 5 dan$ARGV[2]
9, kami akan mengulangi lebih dari 5,6,7,8 dan 9.Apa yang terjadi pada setiap iterasi dalam kurung kurawal? kita mengambil setiap angka yang ditentukan dengan
$_
, dan menggunakansprintf()
fungsi membuat string m yang menyambungkan awalan (argumen baris perintah pertama,$ARGV[0]
) dan nomor yang diberikan, tetapi mengisi angka dengan 4 nol (yang dilakukan dengan-printf
gaya pemformatan,%04d
bagian), dan lampirkan.c
suffix. Sebagai hasil pada setiap iterasi kita membuat nama sepertibspl0001.c
.Secara
open(my $fh, ">", $var);close($fh)
efektif bertindak sebagaitouch
perintah, membuat file dengan nama yang ditentukan.Meskipun sedikit panjang, performanya cukup baik, dengan cara yang mirip dengan skrip python Jacob Vlijm. Itu juga dapat dikonversi ke skrip untuk dibaca jika diinginkan, seperti:
Mari kita coba ini. Pertama, satu-liner:
Dan sekarang skripnya:
awk
Pendekatan lain akan dengan
awk
, menjalankan loop for, mengarahkan ke file tertentu. Pendekatannya mirip dengan perl one-liner dengan argumen command-line. Walaupunawk
terutama merupakan utilitas pemrosesan teks, masih dapat melakukan beberapa pemrograman sistem yang keren.sumber