line ; do sum=$((${sum} + ${line})) done echo ${sum} } if [[ -e file.txt ]]; then echo file exists fi case $t in abc*) <action> ;; esac Воробьёв Станислав Shell practice 24 апреля 2014 г.[2em] Для начала: git / 22
-nr 2 word1 1 word2 sequential process: IFS="," orders="1126,5553,2316" for v in $orders; do process "$v" done # seq=‘perl -e "\$,=’ ’;print 2..$max"‘ for v in ‘seq 1 3‘; do echo $v; done parallel: find . -type f | parallel -k grep -H -n $1 {} mapreduce: https://github.com/erikfrey/bashreduce Воробьёв Станислав Shell practice 24 апреля 2014 г.[2em] Для начала: git / 22
sed ’s/1/5/g’ word frequency: $ cat "$1" | xargs -n1 | \ # List the file, one word per line. tr A-Z a-z | \ # Shift characters to lowercase. sed -e ’s/\.//g’ -e ’s/\,//g’ -e ’s/ //g’ | \ # Filter out periods and commas, and # change space between words to linefeed, sort | uniq -c | sort -nr # Finally remove duplicates, prefix occurrence count # and sort numerically. Воробьёв Станислав Shell practice 24 апреля 2014 г.[2em] Для начала: git / 22
Peter J. Weinberger и Brian W. Kernighan (1977) Тьюринг-полный https://github.com/darius/awklisp Программа имеет три секции: BEGIN { } # before /pattern/ { print "$1" } # for each matching line # ... END { } # after wc: { total = total + NF }; END {print total} head: NR < 11 Воробьёв Станислав Shell practice 24 апреля 2014 г.[2em] Для начала: git / 22
’(*).html’ ’template_$1.tmpl’ autocomplete: $ cd /u/l/b $ cd /usr/local/bin $ cd bin share $ pwd /usr/local/share typo correct: $ sl zsh: correct ’sl’ to ’ls’ [nyae]? Воробьёв Станислав Shell practice 24 апреля 2014 г.[2em] Для начала: git / 22
</xml> xmlstarlet: $ xml el table.xml xml xml/table xml/table/rec xml/table/rec/paymentAmount xml/table/rec/paymentCurrency Воробьёв Станислав Shell practice 24 апреля 2014 г.[2em] Для начала: git / 22
vim +47 FileWithError.php invoke shell: :sh :make :!./run-tests.sh save w/ sudo: :w !sudo tee % >/dev/null .vimrc: cnoremap sudow w !sudo tee % >/dev/null encoding: :e ++enc=cp1251 Воробьёв Станислав Shell practice 24 апреля 2014 г.[2em] Для начала: git / 22