Stupid bash scripting guide
четверг, 5 декабря 2013 г.
weird shit isnt it?
ll -la /proc/7952/fd/ | grep 12 | cut -d '[' -f 2 | cut -d ']' -f1 | while read line; do netstat -anpF | grep $line; done
вторник, 27 августа 2013 г.
uncomment.sh
Время от времени нужно избавиться от комментариев в конфигах, чтобы сравнить, например, чем он отличается от стандартного, помимо комментов. Да и суть ведь не в них. В общем скрипт, вызывается так:
uncomment /etc/raddb/radius.conf
#!/bin/bash
egrep -v "^\s*\t*\s*$" "$1" | egrep -v "^\s*\t*\s*#.*$" > "$1".uncommented
mv "$1.uncommented" "$1"
Удаляет пустые строки и комментарии.
воскресенье, 25 августа 2013 г.
Работа с частями строки в sed
echo qwerty | sed -e 's/\(qwe\)\(rty\)/\2\1/g'
\(qwe\) - это \1
\(rty\) - это \2
собственно мы их переставили местами.
\(qwe\) - это \1
\(rty\) - это \2
собственно мы их переставили местами.
четверг, 20 июня 2013 г.
Поиск того, что отъёло больше всего места на диске
Тупой написанный на коленке скрипт, подходящий для системы на одном разделе.
#!/bin/bash
get_first_2() {
du -s * 2>/dev/null | sort -nr | head -2 | awk '{print $2}'
}
cd /
for i in $(seq 0 3); do
for j in $(seq 0 $i); do
echo -n " "
done
dirs="$(get_first_2)"
echo $dirs
dir="$(echo "$dirs" | head -1)"
cd $dir
done
воскресенье, 16 июня 2013 г.
git add <только изменённые файлы>
Извращение, но всё же.
git status | grep modif | awk '{print $3}' | xargs echo git add
git status | grep modif | awk '{print $3}' | xargs echo git add
пятница, 24 мая 2013 г.
понедельник, 13 мая 2013 г.
Список выходных года на баше
К сожалению нашёлся небольшой косяк - пропускается часть воскресений и суббот в неполных неделях.
Пример для будущего ковыряния:
LANG=C cal 1 2013 | egrep -v "([a-z]^C$)" | while read -a arr; do len=${#arr[@]}; let len--; echo ${arr[$len]}; done
и сам скрипт
#!/bin/bash
Пример для будущего ковыряния:
LANG=C cal 1 2013 | egrep -v "([a-z]^C$)" | while read -a arr; do len=${#arr[@]}; let len--; echo ${arr[$len]}; done
и сам скрипт
#!/bin/bash
for i in $(seq 1 12); do
LANG=C cal $i 2013 | grep -v "[a-z]" | while read t t t t t t day; do
[ -n "$day" ] && date +"%Y-%m-%d Воскресение" --date="2013-$i-$day"
done
LANG=C cal $i 2013 | grep -v "[a-z]" | while read t t t t t day t; do
[ -n "$day" ] && date +"%Y-%m-%d Суббота" --date="2013-$i-$day"
done
done
if [ -f add.txt ]; then
while read date name; do
echo "$date" "$name"
done < weeks.txt
fi
Результат под катом...
Подписаться на:
Комментарии (Atom)