Está descrito en la página a la que se vinculó:
Initially, you will only need to download and use the first image of a set (labelled as debian-something-1 to be able to start the Debian installer and set up Debian on your computer. If there are more images available here (labelled debian-something-2, debian-something-3, etc.), they contain the extra packages that can be installed on a Debian system (as mentioned previously). They will not be bootable and are entirely optional. If you have a fast Internet connection, you're most likely better off installing any desired extra packages directly from the Debian mirrors on the Internet instead of by using these extra images.
Eso significa que debe usar debian -9.4.0 -amd64 -DVD -1.iso para instalar Debian
. También es una buena idea intentar ejecutar Debian
en un entorno virtual para probarlo antes de reemplazar su sistema operativo actual.
Вы можете получить наилучшие результаты от awk:
awk '{ print > "index i"$2 }' < input
Вы также можете сделать это только в оболочке:
while read a b c
do
printf '%s\n' "$a $b $c" >> "index i$b"
done < input
Решение awk имеет следующие преимущества:
>>
вместо >
в сценарии awk.)Команда
for i in `awk '{if(!seen[$2]++)print $2}' y.txt`;do awk -v i="$i" 'BEGIN {print "index i"i}$2==i {print $0}END {print "========================================"}' y.txt; done
выход
index i1
M1 1 1233
M2 1 3212
M3 1 55323
M4 1 4444233
M5 1 23444
M6 1 555333
M7 1 55567
========================================
index i2
M8 2 22224
M9 2 55566
M10 2 4567
========================================
index i3
M11 3 44242
M12 3 234234
========================================
index i4
M13 4 2233
M14 4 2442
M15 4 322352
M16 4 235242
M17 4 2324524
========================================
index i5
M18 5 232342
========================================
index i6
M19 6 2322523
M20 6 2332523
========================================
Чтобы добавить к G -Ответ человека:да, вы можете добиться точно такого же результата, используя только sh (, так как это было спецификацией в вашем дублирующем вопросе там , на который я ответил 9 часов до G -Человек ответит здесь ).
Существует встроенная функция set
, которая позволяет вам назначать значения для$1
$2
и $3
и так далее. Вот цитата из справочной страницы bash (, это также относится к sh):
установить [{ -опции | +опции | --}] аргумент...
The third use of the set command is to set the values of the shell's positional parameters to the specified args. To change the positional parameters without changing any options, use “--” as the first argument to set. If no args are present, the set command will clear all the positional parameters (equivalent to executing “shift $#”.)
Так что можно:
set -f
while read ln; do
set -- $ln
printf '%s\n' "$ln" >> "index i"$2
done < input
set +f
В set -- $ln
, $ln
разбивается на поля, и n-е поле назначается n-му позиционному параметру.
Цитата вокруг $ln
в следующей строке обеспечивает целостность содержимого (с сохранением пробелов и т. д. ).
set -f
и set +f
предназначены для предотвращения подстановки символов, таких как *и ? в файле с путаницей set
. Спасибо Скотту за то, что поднял эту тему.
Вместо printf
я изначально использовал echo
. Но благодаря второму комментарию Скотта (, если противник меняет строку на echo
с такими опциями, как -n
, -e
и т. д.,тогда echo
запутается ), printf
вместо этого используется для защиты от этого.
Это показывает, что sh, вероятно, не идеальный выбор для такого рода работы. По крайней мере, используйте bash с поддержкой регулярных выражений. Но, это выполнимо, если вы попробуете.
Что касается awk, то он не "немного быстрее", а быстрее на порядок, если не учитывать дисковый ввод-вывод. Поэтому предпочтительнее использовать awk.
Кстати, я уверен, что вы не слышали о поговорке «если два ответа — это слишком много, то два вопроса — это два слишком много».
since I just said it ;)
Но в следующий раз сделайте выбор и придерживайтесь его, чтобы мы все могли сосредоточить свои усилия на нем.