Это вопрос кода-гольфа. Вам нужно взять содержимое двух отдельных файлов (i.txt и o.txt) и поменять их местами. Вы можете создать третий файл, чтобы помочь вам в этом процессе, но ваша программа удалит его после замены содержимого файла. Переименование файлов теперь разрешено снова.
Программы должны работать для любого содержимого файла.
Самый короткий код выигрывает, все подходящие материалы будут подвергнуты голосованию.
inode
s, цель состоит в томi.txt
,inode
чтобы она содержала данные изo.txt
sinode
, и наоборот, так что если есть жесткие ссылки на них вinode
другом месте, их содержимое также будет поменяться местами. Переименование не может этого достичь.Ответы:
зш, 20
источник
i=`<i.txt`;<o*>i*;<<<$i>o*
. Жаль, что это должно быть короче.<t>o*;rm t
наmv t o*
!Python, 77
Питон, 65
Python, 63
PHP, 68
Пакетный файл Windows, 42
Пакетный файл Windows (args), 30
источник
$r=rename
для создания псевдонимов для функций в PHP. Благодарность!Два Баша ansers основы; 52 и 62 символа
оболочка: diff + patch (+ tee + sed ...) 52
Возможно не короче, но я нахожу это забавным (и нет никакого использования временного файла):
Где содержимое поменяно местами и файлы изменены на месте :
Пробный прогон
Может произвести что-то вроде:
использование xargs для упрощения
mv
запросовНе так смешно, но все равно приятно.
источник
patching file o.txt
появляется.PHP, 89
Я думал, что я сделаю это.
Безголовая версия:
Видимо, я взял 2 ответа здесь и объединил их ... да ладно.
источник
Рубин, 72 байта
Вот это да! Рубиновый код для гольфа! Я не думаю, что это когда-либо предпринималось раньше!
В действительности, для этого потребовалось несколько хороших ярлыков на Ruby и пара шаблонов, которые я нашел. Это был мой первый гольф, и было очень весело заниматься. Без лишних слов, вот код для игры в гольф:
И негольфированная версия
Ключевым фактором в этом является то, что параметры, передаваемые в
File.rename
это:Надеюсь, что это (не) имеет смысл!
источник
Powershell,
4449 байтгде
ren
псевдоним для Rename-Item . Скрипт использует и удаляет третий файлa.txt
.источник
gc
умолчанию UTF8NoBOM, а поsc
умолчанию ASCII. Попробуйте некоторые файлы UTF-8 или двоичные файлы, и вы увидите, как он может потерпеть неудачу.-e by -n
параметры, чтобы файлы оставались неизменными. Было бы неплохо добавить параметр-readCount 0
производительности. Сценарий сrename
короче :) Исправлено.Рубин
Укороченная версия:
Не самый короткий, но очень простой и удобный для чтения. Также нет промежуточных файлов, только оперативная память.
источник
PHP
источник
Сценарий оболочки, 24
Работает в Баш и, вероятно, большинство снарядов. Передайте с двумя именами файлов в качестве параметров.
Если вам нужны фиксированные имена файлов, тогда это будет сделано, для штрафа в 12 символов:
источник
mv
операцииcp
.Python:
источник
Пакетный файл Windows (48)
Я забыл про команду перемещения, когда писал это ...
источник
a
файл!С 162
Гольф: использует t.txt в качестве файла tmp и меняет имена, а затем удаляет t.txt.
Редактировать: удалены 2 пробела
источник
PHP - 172
Гольф версия ответа @ EisaAdil
источник
Rebol - 46 (переименовать файл) или 55 (ч / б содержимое)
Переименовать файл (используя
t
как временный файл):Прочитайте и запишите содержимое файла:
источник
PHP, 45
Не очень хороший, но самый короткий PHP.
источник
Groovy - 99 символов
Это моя попытка, с Groovy 2.2.1. Я пытался сделать это без переименования:
Ungolfed:
источник
VBA (148 ... 132) и (126 ... 110)
Переименование с помощью временного файла t на диске c: \. Также первая попытка игры в гольф: S
Если на scrrun.dll уже есть ссылки, может быть немного урезан до 126 ... 110.
источник
C: 65 символов
Довольно простое решение на C, которое делает эту работу. Используется временное имя (
.txt
) для одного из файлов, прежде чем дать ему правильное новое имя.Ungolfed (обратите внимание, что подсветка синтаксиса в определении не работает, ошибка была обнаружена!):
источник
Perl, 120 байт (замена содержимого без переименования файла)
Содержимое файла помещается в память и записывается в другой файл. Таким образом
i.txt
иo.txt
должен вписаться в память.Поскольку содержимое файла фактически обменивается, жесткие ссылки обновляются автоматически, см. Комментарий AJManfield .
Ungolfed:
источник
Пакет Windows, 39 байт
источник
Lua ,
7170 байтПопробуйте онлайн!
Определите
os
, библиотеку операционной системы, как глобальную таблицу, чтобы мы могли писатьrename
иremove
вместоos.rename
иos.remove
. (Между прочим, это также означает, что однобуквенные переменные на самом деле являются полями вos
таблице.) Сделайте короткий псевдоним дляos.rename
экономии места. Установите переменные имени файла, используя в'.txt'
качестве временного файла. Делаем переименование и удаление.источник
PHP, 52 байта
Php от AsksAnyway, модернизированный и играющий в гольф:
Беги с
php -nr '<code>'
.источник
Tcl , 122 байта
Попробуйте онлайн!
Tcl , 169 байт
Попробуйте онлайн!
источник
SmileBASIC,
3635 байтисточник