Showing posts with label команди. Show all posts
Showing posts with label команди. Show all posts

Wednesday, December 28, 2011

bash: remove file extension


To get filename without extention try this:

Code:
file='file.txt'
name=${f%\.*}


or



# echo file_name.jpg  | sed 's/\(.*\)\..*/\1/'
file_name
#


Tuesday, September 13, 2011

fatal: not enough arguments to satisfy format string

Деколи про роботі з awk, а саме printf виникає помилка atal: not enough arguments to satisfy format string

наприклад:
tail -5000   /var/log/nginx/access.log |awk '{ if ( $1 = IP)  printf $_ }'
....  "awk: (FILENAME=- FNR=36) fatal: not enough arguments to satisfy format string


Усунути її можна 2 способами:

  1. використовувати printf  "%s", $_   (чи printf  "%s", $1 - відповідно що саме потрібно вивести) , наприклад:
     tail -5000   /var/log/nginx/access.log |awk '{ if ($1 = IP)  printf "%s", $_ }'
  2. або можна виокристати просто print,  наприклад:
     tail -5000   /var/log/nginx/access.log |awk '{ if ($1 = IP)  print $_ }'

Monday, October 12, 2009

find exclude ( виключення в find )

Якщо з самого початку - то виникла в мене потреба стирати всі фалйи в певному каталозі, що старші ніж 2 дні,  здавалося б все дуже просто
find  /dir -type f  -exec rm {} \;

але потім настала потреба виключити з пошуку певний підкаталог , написав таке
find  /dir -type f | greo -v "/dir/notrm/  | xargs  rm

проте згодом зявилися файли з символами " та ' в іменах.. і мою послідовність команд дала збій..
прийшлося  шукати як все ж таки в find зробити виключення..
після довгих пошук вдалося знайти :

find /dir -path '/dir/notrm' -prune -o -type f -mtime +2 -exec rm {} \; 

переконаний, що і попередній варіант команди можна було б підправити і все ю запрацювало , але так мені більше подобається