Одним из сценариев, в котором целесообразно добавлять новые строки к строкам, является использование команды read
при активном режиме set -e
. Напомним, что set -e
приводит к завершению сценария, когда он (более или менее) сталкивается с инструкциями, генерирующими ненулевой код состояния. Учтите, что read
создает ненулевой код состояния при обнаружении строки без новых строк:
#!/bin/bash
set -e
# The following statement succeeds because here-strings append a newline:
IFS='' read -r <<< 'newline appended'
echo 'Made it here'
# The following statement fails because 'read' returns a non-zero status
# code when no newlines are encountered.
printf 'no newline' | IFS='' read -r
echo 'Did not make it here'
-121--13319- Сохраните следующий сценарий как repwith1.sh:
cat | while read procl
do echo -n "${procl:0:1}"
for i in `seq 1 $((${#procl}-1))`
do if [ $((RANDOM%10)) -eq 1 ]
then if echo "${procl:$i:1}" | grep -q "[0-9]"
then echo -n "1"
else echo -n "${procl:$i:1}"
fi
else echo -n "${procl:$i:1}"
fi
done
echo ""
done
Используйте его следующим образом:
$ cat (file name) | bash repwith1.sh
Если требуется сохранить в файл, выполните следующие действия:
$ cat (file name) | bash repwith1.sh > (new file name)
-121--243197- awk -F';' '
NR == FNR {a[$1] = $0; next}
{print a[$0]; delete a[$0]}
END {for (l in a) print a[l]}' file1 file2
Я не думаю, что вы можете использовать tcpdump
на субинтерфейсе (, т.е. ens192.10
), как это в Linux.
Обычный способ сброса определенного (или всего )трафика vlan
tcpdump -i ens192 -e vlan 10 and host 239.1.1.1 # just vlan tag 10
tcpdump -i ens192 -e vlan and host 239.1.1.1 # all tagged vlans
или, если ваша версия tcpdump
не поддерживает синтаксис vlan X
, вы можете сопоставить необработанные заголовки с
tcpdump -i ens192 -e 'ether[12:2] = 0x8100 and ether[15] = 10' and host 239.1.1.1