Ваш вызов pkill убивает все процессы, которые имеют строку tor в своей командной строке (например, monitor или navigator или calculator и т. д.). Таким образом, я думаю, вы также убиваете важные процессы и оказываетесь в неустойчивой системе.
Я рекомендую останавливать, используя:
sudo service tor stop
или
sudo /etc/init.d/tor stop
Подход с awk: чтобы работать с отдельными символами, задайте разделитель полей как пустое, избавьтесь от точки в исходном MAC-адресе и напечатайте точку после каждого второго символа. Для одного MAC-адреса код будет выглядеть так:
echo 5254.0040.8beb | awk -F '' '{gsub(/\./,"");for(i=1;i<=NF;i++){printf $i;if(i%2 == 0 && i!=NF) printf ":" }}'
Мы можем превратить код в исполняемый скрипт, например:
создать файл с именем mac-editor.awk. Его содержимое находится в файле ниже. Сделайте исполняемый файл сценария с помощью chmod 755 mac-editor.awk; Запустите код с входным файлом в качестве аргумента, подобного этому ./mac-editor.awk input-file.txtСодержимое AWK-скрипта
#!/usr/bin/awk -f
BEGIN {
FS="";
}
{
gsub(/\./,"");
for(i=1;i<=NF;i++){
printf $i;
if(i%2 == 0 && i!=NF)
printf ":"
};
printf "\n";
}
Содержимое AWK-скрипта [ ! d9]:
Демонстрация ниже показывает, как скрипт ведет себя с входным файлом, где у вас есть список MAC-адресов, по одному на строку.
$ cat mac-addresses.txt
7ab1.34b9.2eb0
2689.373c.d131
d271.a9a2.14c4
$ mac-editor.awk mac-addresses.txt
7a:b1:34:b9:2e:b0
26:89:37:3c:d1:31
d2:71:a9:a2:14:c4