Bash: различия между версиями
Vovan (обсуждение | вклад) |
Gumanoed (обсуждение | вклад) (→Убрать теги из html) |
||
Строка 53: | Строка 53: | ||
==Убрать теги из html== | ==Убрать теги из html== | ||
cat index.html | sed 's/<[a-zA-Z0-9\/]*>//g' | cat index.html | sed 's/<[a-zA-Z0-9\/]*>//g' | ||
+ | |||
+ | ==Преобразование текста== | ||
+ | {| | ||
+ | !Есть список Mac и соответствующих IP | ||
+ | !Нужно получить конфигурационный файл dhcpd.conf вида: | ||
+ | |- | ||
+ | |0A-71-91-5C-C3-93 192.168.10.5 | ||
+ | CD-FC-BD-4C-4E-E5 192.168.10.6 | ||
+ | E4-2C-53-4C-AB-94 192.168.10.7 | ||
+ | 9F-5B-44-F4-F4-0C 192.168.10.8 | ||
+ | 7A-62-27-8E-FC-4E 192.168.10.9 | ||
+ | 10-06-C0-A1-62-84 192.168.10.10 | ||
+ | 34-30-80-F2-7C-CF 192.168.10.11 | ||
+ | D7-61-FB-2B-AD-A7 192.168.10.12 | ||
+ | C0-4D-02-04-41-F7 192.168.10.13 | ||
+ | 10-BC-59-38-4A-55 192.168.10.14 | ||
+ | 87-5B-5C-47-FC-BF 192.168.10.15 | ||
+ | CC-31-EF-4C-24-6C 192.168.10.16 | ||
+ | |host office-pc-05 { | ||
+ | hardware ethernet 0A:71:91:5C:C3:93; | ||
+ | fixed-address 192.168.10.5; | ||
+ | } | ||
+ | |} | ||
+ | |||
+ | #!/bin/bash | ||
+ | |||
+ | for i in $(cat mac-ip.txt|awk '{print $1"_"$2}') | ||
+ | do | ||
+ | mac=$(echo $i|sed 's/-/:/g'|awk -F "_" '{print $1}') | ||
+ | ip=$(echo $i|awk -F "_" '{print $2}') | ||
+ | hostNumber=$(echo $ip|awk -F "." '{print $4}') | ||
+ | echo "host office-pc.$hostNumber {" >>dhcpd.conf | ||
+ | echo "hardware ethernet $mac;" >>dhcpd.conf | ||
+ | echo "fixed-addres $ip;" >>dhcpd.conf | ||
+ | echo "}" >>dhcpd.conf | ||
+ | echo "" >>dhcpd.conf | ||
+ | done |
Версия 12:26, 2 мая 2012
Содержание
Ссылки
Работа с файлами содержащими пробелы
#!/bin/bash OLD_IFS=$IFS IFS=$(echo "") for i in $(ls *.odt) do echo "$i" done IFS=$OLD_IFS
(11:31:41) Юрий Азовцев: переопределяем переменную окружения IFS (она содержит символ - разделения слов в строке), меняем его на символ \n - перевода на новую строку - и все хокей
Загрузка файла с хоста уменьшающего скорость
#!/bin/bash #antishaper.sh for i in $(seq 1 100) do wget -c $1 & wget_pid=$! sleep 20s #ожидаем 20 секунд ps ux | grep $wget_pid | grep wget if [ $? -eq '1' ] then exit 1 fi kill $wget_pid done
Бэкапы с уделением бэкапов за последние 30 дней
#!/bin/bash #backuper.sh tar -czpf $(date +%Y-%m-%d)-backup.tar.gz $1 echo "Backup Finished" period=2592000 for i in $(ls *-backup.tar.gz) do time=${i%-backup.tar.gz} file_utime=$(date --date="$time" +%s) cur_utime=$(date +%s) if [ $(($cur_utime - $file_utime)) -gt $period ] then rm $i echo "File $i deleted" fi done
Убрать теги из html
cat index.html | sed 's/<[a-zA-Z0-9\/]*>//g'
Преобразование текста
Есть список Mac и соответствующих IP | Нужно получить конфигурационный файл dhcpd.conf вида: |
---|---|
0A-71-91-5C-C3-93 192.168.10.5
CD-FC-BD-4C-4E-E5 192.168.10.6 E4-2C-53-4C-AB-94 192.168.10.7 9F-5B-44-F4-F4-0C 192.168.10.8 7A-62-27-8E-FC-4E 192.168.10.9 10-06-C0-A1-62-84 192.168.10.10 34-30-80-F2-7C-CF 192.168.10.11 D7-61-FB-2B-AD-A7 192.168.10.12 C0-4D-02-04-41-F7 192.168.10.13 10-BC-59-38-4A-55 192.168.10.14 87-5B-5C-47-FC-BF 192.168.10.15 CC-31-EF-4C-24-6C 192.168.10.16 |
host office-pc-05 {
hardware ethernet 0A:71:91:5C:C3:93; fixed-address 192.168.10.5; } |
#!/bin/bash for i in $(cat mac-ip.txt|awk '{print $1"_"$2}') do
mac=$(echo $i|sed 's/-/:/g'|awk -F "_" '{print $1}') ip=$(echo $i|awk -F "_" '{print $2}') hostNumber=$(echo $ip|awk -F "." '{print $4}') echo "host office-pc.$hostNumber {" >>dhcpd.conf echo "hardware ethernet $mac;" >>dhcpd.conf echo "fixed-addres $ip;" >>dhcpd.conf echo "}" >>dhcpd.conf echo "" >>dhcpd.conf
done