Ini adalah pertanyaan kode-golf. Anda perlu mengambil konten dari dua file terpisah (i.txt dan o.txt) dan menukar mereka. Anda dapat membuat file ketiga untuk membantu Anda dengan proses, tetapi minta program Anda menghapusnya setelah konten file ditukar. Mengganti nama file sekarang diizinkan lagi.
Program harus bekerja untuk semua konten file.
Kode terpendek menang, semua pengiriman yang memenuhi syarat akan dipilih.
inode
s tujuan di sini akan untuki.txt
'sinode
mengandung data dario.txt
' sinode
, dan sebaliknya, sehingga jika ada hardlinks untuk merekainode
s tempat lain, isinya akan muncul bertukar juga. Mengganti nama tidak bisa menyelesaikan itu.Jawaban:
zsh, 20
sumber
i=`<i.txt`;<o*>i*;<<<$i>o*
. Sayang sekali ini harus lebih pendek.<t>o*;rm t
denganmv t o*
!Python, 77
Python, 65
Python, 63
PHP, 68
File Batch Windows, 42
File Batch Windows (args), 30
sumber
$r=rename
untuk membuat alias ke fungsi di PHP. Terima kasih!Dua server berbasis bash ; 52 dan 62 karakter
shell: diff + patch (+ tee + sed ...) 52
Mungkin bukan yang lebih pendek, tapi saya menemukan kesenangan ini (dan tidak ada penggunaan file sementara ):
Di mana konten ditukar dan file diubah di tempat :
Contoh dijalankan
Dapat menghasilkan sesuatu seperti:
penggunaan xargs untuk menyederhanakan
mv
permintaanTidak lucu, tapi tetap menyenangkan.
sumber
patching file o.txt
muncul.PHP, 89
Saya pikir saya akan mencobanya.
Versi tidak disatukan:
Rupanya saya mengambil 2 jawaban di sini dan menggabungkannya .. oh well.
sumber
Ruby, 72 byte
Wow! Golf kode Ruby! Saya tidak berpikir itu pernah dicoba sebelumnya!
Dalam semua kenyataan, ini membutuhkan beberapa cara pintas Ruby yang bagus dan beberapa pola yang saya temukan. Ini adalah golf pertama saya dan sangat menyenangkan untuk dilakukan. Tanpa basa-basi lagi, inilah kode golfnya:
Dan versi yang tidak serigala
Faktor kunci dalam hal ini adalah bahwa parameter yang diteruskan ke
File.rename
apakah ini, tepatnya:Semoga ini (tidak) masuk akal!
sumber
Powershell,
4449 bytedimana
ren
alias untuk Rename-Item . Script menggunakan dan menghapus file ketigaa.txt
.sumber
gc
standarnya adalah UTF8NoBOM tetapisc
standarnya adalah ASCII. Coba beberapa file UTF-8 atau file biner dan Anda dapat melihat bagaimana itu bisa gagal.-e by -n
parameter untuk memastikan bahwa file tidak berubah. Akan menyenangkan untuk menambahkan parameter-readCount 0
ke kinerja. Skrip denganrename
lebih pendek :) Tetap.Rubi
Versi singkat:
Bukan yang terpendek, tetapi sangat sederhana dan mudah dibaca. Juga, tidak ada file perantara, hanya RAM.
sumber
PHP
sumber
Script shell, 24
Bekerja di Bash dan mungkin sebagian besar shell. Lulus dengan dua nama file Anda sebagai parameter.
Jika Anda ingin memperbaiki nama file maka ini akan melakukannya, untuk penalti 12 char:
sumber
mv
operasi, bukancp
.Python:
sumber
File Batch Windows (48)
Saya lupa tentang perintah pindah ketika saya menulis ini ...
sumber
a
file saya !C 162
Golfed: menggunakan t.txt sebagai file tmp dan menukar nama kemudian menghapus t.txt.
Edit: dihapus 2 spasi
sumber
PHP - 172
Versi Golf jawaban @ EisaAdil
sumber
Rebol - 46 (ganti nama file) atau 55 (konten r / w)
Ganti nama file (menggunakan
t
file sementara):Baca lalu tulis konten file:
sumber
PHP, 45
PHP tidak terlalu golfy tetapi terpendek sejauh ini.
sumber
Groovy - 99 karakter
Ini adalah usaha saya, dengan Groovy 2.2.1. Saya mencoba melakukannya tanpa mengganti nama:
Tidak Disatukan:
sumber
VBA (148 ... 132) dan (126 ... 110)
Mengganti nama dengan file temp t di c: \ drive. Juga upaya pertama di golf: S
Jika scrrun.dll sudah direferensikan, bisa kurangi sedikit menjadi 126 ... 110.
sumber
C: 65 karakter
Solusi yang cukup sederhana dalam C yang melakukan pekerjaan. Ini menggunakan nama sementara (
.txt
) untuk salah satu file sebelum memberinya nama baru yang tepat.Tidak digabungkan (perhatikan bagaimana penyorotan sintaks gagal di define, bug telah ditemukan!):
sumber
Perl, 120 byte (Isi bertukar tanpa mengganti nama file)
Isi file dimasukkan ke dalam memori dan ditulis kembali ke file lainnya. Dengan demikian
i.txt
dano.txt
harus masuk ke dalam memori.Karena konten file sebenarnya dipertukarkan, tautan keras diperbarui secara otomatis, lihat komentar AJManfield .
Tidak Disatukan:
sumber
Windows Batch, 39 byte
sumber
Lua ,
7170 byteCobalah online!
Tentukan
os
, perpustakaan sistem operasi, sebagai tabel global sehingga kita dapat menulisrename
danremove
bukannyaos.rename
danos.remove
. (Kebetulan ini juga berarti variabel satu huruf sebenarnya adalah bidang dalamos
tabel.) Buat alias pendek untukos.rename
menghemat ruang. Atur variabel nama file, gunakan'.txt'
sebagai file sementara. Lakukan pengubahan nama dan penghapusan.sumber
PHP, 52 byte
Php AsksAnyway dimodernisasi & di- golf :
Jalankan dengan
php -nr '<code>'
.sumber
Tcl , 122 byte
Cobalah online!
Tcl , 169 byte
Cobalah online!
sumber
SmileBASIC,
3635 bytesumber