Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN
Вы можете достигнуть пика внутри пакетов, используя [1176550]repoquery[1176551], если вы знаете имя так:
Для установки:
Здесь так много неправильных вещей
#!/bin/bash
myarr = (
между ними есть пробел, означающий, что ничего не назначается, даже если он вообще выполняется.
cat 25.6.2015_test.txt | awk
Awk может открывать свои собственные файлы без cat
-F 'fafafafa' '$1~/^[a-z0-9*]+$/
-F - разделитель полей, а не запись, поэтому все, что это делает, - это удаление текста fafafafa
, каждая строка по-прежнему читается как запись так что ваше следующее условие совершенно бессмысленно.
myarr = ($( cat 25.6.2015_test.txt | awk -F 'fafafafa' '$1~/^[a-z0-9*]+$/ {print $1}') )
Это напечатает несколько строк, которые будут отдельными элементами в массиве, так как они разделены на новые строки и не имеют видимости того, что является записью в awk (если вы действительно разбили записи вместо полей).
echo ${myarr[1]}
echo $i
Цитируйте их, если вы не хотите видеть все файлы в вашем каталоге каждый раз, когда вы повторяете эхо (из-за *
в записях)
:
Почему?
# Create an array
myarr=()
# Save the number of different blocks to be saved, notice the
# `-vRS` which sets the field separator
blocks=$(awk -vRS='fafafafa' '$1~/^[a-z0-9*]+$/{x++}END{print x}' file)
# While the the counter is less than the number of blocks.
while [[ $x -le $blocks ]] ;do
# Increase the counter
((x++))
# Add the value for that block to the array, notice the quotes around
# `$()`, they are important in keeping all the block as one array
# element. The awk also increments its own counter for each
# occurrence of 'fafafafa' and your condition for '$1'. When both
# counters match the block is saved to the array.
myarr+=("$(awk -vRS='fafafafa' -vN="$x" '$1~/^[a-z0-9*]+$/{x++}
x==N{print RS$0}' test)")
done
Строка
myarr = ($( cat 25.6.2015_test.txt | awk -F 'fafafafa' '$1~/^[a-z0-9*]+$/ {print $1}')
ошибочна. Используйте строку ниже:
myarr=$(awk -F 'fafafafa' '$1~/^[a-z0-9*]+$/ {print $1}' 25.6.2015_test.txt)
И вы должны использовать "
:
echo "${myarr[1]}"
и
echo "$i"
И вы можете использовать эту awk
команду
с fafafa
:
awk '{if ($1 ~ /^fafafa$/) {line+=1; распечатать ""; распечатать "ячейку "line;распечатать "--------"; распечатать $1} else { распечатать $1}}' 25. 6.2015_test.txt
без fafafafa
awk '{if ($1 ~ /^fafafafa$/) {line+=1; распечатать ""; распечатать "ячейку "line;распечатать "--------";} else { распечатать $1}}" 25.6.2015_test.txt
Пример выхода без fafafa
cell 1
--------
00005e58
da1e5afe
00000000
*
cell 2
--------
00005e58
da1e5afe
00000000
*
00000001
ffffffff
555eea72
00000000
*
00000004
cell 3
--------
01da1300
*
00000004
02991c00
cell 4
--------
01da1300
cell 5
--------
01da1300
cell 6
--------
01da1300
while read -d '&' -r data
do
myarr[${#myarr[@]}]="$data"
done < <(sed '1! s/fafafafa/\&&/' 25.6.2015_test.txt)
поместит все ваши данные из файла 25.6.2015_test.txt
в массив myarr
, разделенных fafafafa
вместе с ним.
sed
используется для установки символа-разделителя и
(вы можете использовать любой, который не ожидается в текст) перед fafafafa
, кроме первой строки (в противном случае мы получаем пустой 1-й член массива). read
помещает часть текста, разделенную &
, в данные промежуточной переменной
. $ {# myarr [@]}
создает количество элементов в массиве myarr
. Поскольку нумерация начинается с 0
, мы можем получить индекс следующего элемента массива: