Syntax highlighting of linux/cli
<<TableOfContents()>> = Comand Line Interface = == Поиск файлов == Поиск {{{#!highlight bash # --- найти конкретный файл find / -name 'postgresql.conf' # --- найти все файлы по шаблону в текущей директории find . -type f -name '*.rb' # --- не учитывать регистр при поиске по имени: find . -iname "test*" # --- поиск файлов по имени только в текущей папке: find . -maxdepth 1 -name "*.php" # --- найти файлы в директории, которые не соответствуют шаблону: find /some/path -not -name "test*" # --- найти все jar-файлы и исключить результаты, которые содержат поддиректорию tmp find . -not -regex '.*/tmp/.*' -name '*.jar' # --- найти все файлы с раширением .html или .php: find /some/path -name "*.html" -o -name "*.php" # --- найти все файлы, принадлежащие пользователю evgeniy: find /some/path -user evgeniy # --- найти все файлы размером 50 мегабайт: find /some/path -type f -size 50M # --- найти все файлы от пятидесяти до ста мегабайт: find /some/path -type f -size +50M -size -100M }}} Поиск и замена {{{#!highlight bash # --- замена всех вхождений в файлах директории find . -name '*.php' -exec sed -i -e 's/www.fubar.com/www.fubar.ftw.com/g' {} \; }}} Поиск и удаление {{{#!highlight bash # --- поиск файлов и удаление найденных find / -name .DS_Store -exec rm {} + # --- удалить все log-файлы больше 100 мегабайт: find /home/evgeniy/log -type f -name "*.log" -size +100M -exec rm -f {} \; find /home/evgeniy/log -type f -name "*.log" -size +100M -exec rm -f {} + }}} Поиск и что-то еще {{{#!highlight bash # --- найти и посчитать количество найденных файлов find . -type f -name '*.rb' | wc -l # --- вывести 10 первых строк каждого найденого файла записать в sources.txt find . -type f -name '*.rb' -print -exec head {} \; > sources.txt # --- найти файлы по wildcard с отображением размера find -name '*abcd*' -print0 | xargs -0 ls -l # --- поиск файла внутри архивов в заданной директории for f in *.zip; do echo "$f: "; unzip -l $f | grep <filename>; done }}} == Display == {{{#!highlight bash # заголовок файла head /some/file.txt # первые N строк файла head -N /some/file.txt # хвост файла tail /some/file.txt # крайние N строк файла tail -N /some/file.txt # отображение файла с номерами строк nl /some/file.txt # отображение файла с разбиением на страницы more /some/file.txt }}} == Count == {{{#!highlight bash # --- считаем байты в выводе другой команды output=$(your_program) size=$(echo "$output" | wc -c) echo "Size in bytes: $size" }}} == Grep == {{{#!highlight bash # --- grep in grep in grep # grep by multipal strings in files ("grep AND") # на вход команды grep можно передать ограниченное кол-во файлов (команда head) grep -rl 'Rejected' $(grep -rl 'admissionResults' $(grep -rl 'fcsProtocolEF1' . | head -n 1000)) }}} == Encode == {{{#!highlight bash iconv -f WINDOWS-1251 -t UTF-8 FILENAME }}} == Stream Edit == sed - stream editor for filtering and transforming text {{{#!highlight bash # замена всех вхождений в файле и запись результата в отдельный файл sed s/mysql/MySQL/g /some/file.txt > file2.txt }}} == Concatiation == {{{#!highlight bash # Конкатенация файлов # добавление вывода cat в файл all.txt cat *.txt >> all.txt # перезапись файла all.txt выводом cat cat *.txt > all.txt }}}
