Нет объективного способа сказать, что лучше, потому что sed и tail - это не единственные вещи, которые выполняются в системе во время выполнения программы. Множество факторов, таких как дисковый ввод / вывод, сетевой ввод-вывод, прерывания процессора для процессов с более высоким приоритетом - все это влияет на скорость вашей программы.
Оба они написаны на C, поэтому это не проблема языка, а более экологическая. Например, у меня SSD, и в моей системе это займет время в микросекундах, но для того же файла на жестком диске потребуется больше времени, потому что жесткие диски значительно медленнее. Таким образом, аппаратное обеспечение играет роль и в этом.
Есть несколько вещей, которые вы можете иметь в виду, рассматривая, какую команду выбрать:
Какова ваша цель? sed - редактор потоков для преобразования текста. tail предназначен для вывода определенных строк текста. Если вы хотите иметь дело с линиями и распечатывать их, используйте tail. Если вы хотите отредактировать текст, используйте sed. tail имеет гораздо более простой синтаксис, чем sed, поэтому используйте то, что вы можете прочитать сами и что могут прочитать другие.Другим важным фактором является объем данных, которые вы обрабатываете. Небольшие файлы не дают вам никакой разницы в производительности. Картина становится интересной, когда вы имеете дело с большими файлами. С 2 GB BIGFILE.txt мы видим, что sed имеет гораздо больше системных вызовов, чем tail, и работает значительно медленнее.
bash-4.3$ du -sh BIGFILE.txt
2.0G BIGFILE.txt
bash-4.3$ strace -c sed '1d' ./BIGFILE.txt > /dev/null
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
59.38 0.079781 0 517051 read
40.62 0.054570 0 517042 write
0.00 0.000000 0 10 1 open
0.00 0.000000 0 11 close
0.00 0.000000 0 10 fstat
0.00 0.000000 0 19 mmap
0.00 0.000000 0 12 mprotect
0.00 0.000000 0 1 munmap
0.00 0.000000 0 3 brk
0.00 0.000000 0 2 rt_sigaction
0.00 0.000000 0 1 rt_sigprocmask
0.00 0.000000 0 1 1 ioctl
0.00 0.000000 0 7 7 access
0.00 0.000000 0 1 execve
0.00 0.000000 0 1 getrlimit
0.00 0.000000 0 2 2 statfs
0.00 0.000000 0 1 arch_prctl
0.00 0.000000 0 1 set_tid_address
0.00 0.000000 0 1 set_robust_list
------ ----------- ----------- --------- --------- ----------------
100.00 0.134351 1034177 11 total
bash-4.3$ strace -c tail -n +2 ./BIGFILE.txt > /dev/null
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
62.30 0.148821 0 517042 write
37.70 0.090044 0 258525 read
0.00 0.000000 0 9 3 open
0.00 0.000000 0 8 close
0.00 0.000000 0 7 fstat
0.00 0.000000 0 10 mmap
0.00 0.000000 0 4 mprotect
0.00 0.000000 0 1 munmap
0.00 0.000000 0 3 brk
0.00 0.000000 0 1 1 ioctl
0.00 0.000000 0 3 3 access
0.00 0.000000 0 1 execve
0.00 0.000000 0 1 arch_prctl
------ ----------- ----------- --------- --------- ----------------
100.00 0.238865 775615 7 total
Unetbootin всегда работал для меня. Также есть утилита на диске ubuntu. http://unetbootin.sourceforge.net/
Unetbootin & amp; Pendrive Linux очень хорош и прост в использовании. Посмотрите официальное руководство по созданию загрузочного USB:
http://www.ubuntu.com/download/help/create-a-usb-stick-on-windows
Вы можете установить с помощью флэш-накопителя USB, использующего один с емкостью 2 ГБ или больше.
Загрузите ISO-образ, который вам нужен либо 32-битным, либо 64-битным. Вам также необходимо загрузить часть программного обеспечения, которое позволит вам создать загрузочный USB-накопитель из ISO.
Для Windows попробуйте Universal USB Installer Universal USB Installer и следуйте инструкциям программы о том, как создать загрузочный USB.
Как только ISO будет записан на USB-накопитель, используйте его для загрузки с него, убедитесь, что ваша система настроена на загрузку с USB и следуйте инструкциям по установке, когда они появляются на экране.
UnetBootin , вероятно, лучший вариант для вас с его кросс-платформенной.
Вы можете установить с помощью флэш-накопителя USB, использующего один с емкостью 2 ГБ или больше.
Загрузите ISO-образ, который вам нужен либо 32-битным, либо 64-битным. Вам также необходимо загрузить часть программного обеспечения, которое позволит вам создать загрузочный USB-накопитель из ISO.
Для Windows попробуйте Universal USB Installer Universal USB Installer и следуйте инструкциям программы о том, как создать загрузочный USB.
Как только ISO будет записан на USB-накопитель, используйте его для загрузки с него, убедитесь, что ваша система настроена на загрузку с USB и следуйте инструкциям по установке, когда они появляются на экране.
Unetbootin всегда работал для меня. Также есть утилита на диске ubuntu. http://unetbootin.sourceforge.net/
Это только упоминание о том, что Canonical рекомендует Установщик USB Rufus . (Я не использовал его сам).
Инструкции (скопированы из канонические инструкции ):
blockquote>
- Откройте Rufus и выберите ваш USB-накопитель в раскрывающемся меню «Устройство»
- Нажмите значок компакт-диска рядом с раскрывающимся списком «FreeDOS», затем найдите загруженный Ubuntu ISO и нажмите «Открыть»
- Нажмите «Да ', когда он просит загрузить программное обеспечение Syslinux
- Нажмите «ОК», чтобы записать в режиме ISO-образа
- Убедитесь, что ваш USB-накопитель выбран, а затем «OK», чтобы продолжить
- Когда все будет готово, просто перезагрузите компьютер и начните использовать Ubuntu, или вы можете установить Ubuntu
UnetBootin , вероятно, лучший вариант для вас с его кросс-платформенной.
Unetbootin & amp; Pendrive Linux очень хорош и прост в использовании. Посмотрите официальное руководство по созданию загрузочного USB:
http://www.ubuntu.com/download/help/create-a-usb-stick-on-windows
Существует ряд бесплатных программ, которые вы можете установить для этого.
Веб-сайт ubuntu рекомендует «Pendrivelinux», который вы можете скачать здесь здесь .
После загрузки Pendrivelinux вы можете следовать указателям, найденным здесь: create-a-usb-stick-on-windows