Чтобы прояснить, что комментаторы отметили в коде:
BEGIN {
FS="\t"
HPD=0
HPDname=""
LPD=0
LPDname=""
HPW=0
HPWname=""
LPW=0
LPWname=""
}
# Stuff in here needs to be printed during the process.
{
print $1
PD=$2/$4
print PD
PW=($3/($3+$4))*100
print PW
# These if statements see if there is a new highest or lowest value for the categories.
if (PD>HPD)
{
HPD=PD
HPDname=$1
}
if (PDHPW)
{
HPW=PW
HPWname=$1
}
if (PW
Вы смешиваете Bash как переменный синтаксис и неловкость.
Bash:
variable='something'
echo $something
awk:
variable="something"
print variable
awk использует $ для переменных поля, таких как $1, $2, $0, $ NF, но НЕ для созданных переменных. Я думаю, что это более или менее правильно технически, хотя я должен признать, что никогда не читал подробности.
-121--184928-
Я заметил, что это довольно старый вопрос. Чтобы ответить на него более современным тоном, дзелект довольно старый и устаревший. aptitude гораздо более согласован в оценке зависимостей, чем dselect и apt-get, и в качестве бонуса, вы называете aptitude без аргументов, у вас есть dselect-подобный интерфейс, который работает намного лучше.
aptitude не устанавливается по умолчанию, и в Debian вы должны сделать:
apt-get install aptitude
-121--83917-
Сетевой адаптер вашей виртуальной машины по умолчанию находится в режиме NAT. Это означает, что невозможно выполнить ssh/telnet/etc для виртуальной машины вне ее. Переключитесь на Bridged в настройках виртуальной машины, и он должен работать.
Я не совсем понимаю вашу конкретную проблему, простой sed
может достичь того, что вы показываете:
$ sed 's/\ballow\b/not/g' afile
<Directory />
words
not
bus
\b
защищает, чтобы мы заменяли только слова, такие как allow
, строкой not
. Если вы хотите удалить строки, содержащие строку allow
, вы также можете использовать для этого sed
:
$ sed '/\ballow\b/d' afile
<Directory />
words
bus
</Directory>