если Вы находитесь в каталоге:
cd .. && rm -rf dir && mkdir dir && cd dir
иначе:
rm -rf /path/to/dir && mkdir /path/to/dir
Вот простое решение с помощью вставки:
paste -d ' ' file.txt file.txt
Существует больше чем Один способ сделать это:
Замените два раза полным предложением:
sed 's/.*/& &/'
Копия для содержания пространства добавьте, содержат пространство, чтобы скопировать пространство, зафиксировать новую строку:
sed 'h;G;s/\n/ /'
awk, свяжите целое предложение с помощью разделителя полей:
awk '$0=$0FS$0'
sed -e "h;G;s/\n/ /"
незначительно быстрее, чем sed -e "s/.*/& &/"
, который незначительно быстрее, чем awk '$0=$0FS$0'
, но они все приблизительно в 10 раз медленнее, чем paste -d ' ' file file
(как предложено Hai Vu
.. Я вполне удивлен, но это - то, что времена показывают...
– Peter.O
11.05.2011, 09:34
\0
соответствовать всему выражению, таким образом, s/.*/\0 \0/
– Michael Mrozek♦
10.05.2011, 20:20
&
.
– Gilles 'SO- stop being evil'
11.05.2011, 00:55
\1 \1
метод до 30 раз медленнее, чем Hai Vu paste
метод.. и это также медленнее, чем & &
... Вот ссылка на мой сценарий тестирования: paste.ubuntu.com/606010
– Peter.O
11.05.2011, 08:38
Я сделал бы это в жемчуге, но так как Вы помещаете awk, я дам Вам код awk
awk '{print $0,$0;}' file.txt
Править: удалите мою бесполезную кошку
sed -e "s/\(.*\)/\1 \1/"
иsed -e "s/.*/& &/"
для чего-либо кроме самых маленьких файлов.. Я сделал тесты некоторого времени, и хотя взятия приблизительно то же время для файла с 1 строкой,paste
становится относительно намного быстрее как количество увеличений строк.. upt к целых в 28 раз быстрее с 1 000 000 строк... Вот lin к тестовому отрывку: paste.ubuntu.com/606010 – Peter.O 11.05.2011, 08:42paste
имеет оптимизированный код для его конкретной задачи, в отличие от этогоsed
илиawk
которые являются интерпретаторами. Штраф, который Вы платите, - то, что специализированный инструмент может только сделать одно задание. – Gilles 'SO- stop being evil' 11.05.2011, 10:16