ocehb: (Default)
Придумал subj: как стандартными средствами в gnu уних/линух окружении
запустить на параллельное выполнение задачи, чтобы la не превышал какое-либо
значение. Например: есть каталог с тучей больших файлов, всех их надо
зипнуть или гзипнуть, задания можно запускать параллельно,
общий la не должен превышать 2.5.

пс. наверно пятничная задачка :)
ocehb: (Default)
отсюда


Команда найдёт все файлы в текущем каталоге и подкаталогах, содержащие OLD_TEXT и заменит строку "OLD_TEXT" на "NEW_TEXT":
grep -HR OLDTEXT ./ | awk '{print $1}' | sed 's/:.*$//' | grep -v '~' | sort | uniq | xargs perl -i -pe "s/OLD_TEXT/NEW_TEXT/g;"


мне кажется, что ужасно. мое решение:

grep -rl OLDTEXT . | xargs perl -i -pe "s/OLD_TEXT/NEW_TEXT/g;"


если хочется убрать ненужные файлы, то вставить grep -Ev '(~|.o|.a)$', по вкусу.

ps. а sed 's/:.*$//' эффективно прибъёт файлы с двоеточием в имени.

pps. gnu grep умеет -Z
ocehb: (Default)
Если после инсталляции через команду install надо произвести какие-либо действия,
то можно их активировать через флаг(и) -s (—strip и —strip-program).

Например надо перекодировать файл из koi8-r в utf8:


# cat > encode.sh
#! /bin/sh -f
iconv -c -f koi8-r -t utf8 $1 /tmp/tmp.$$
mv -f /tmp/tmp.$$ $1
^D
# chmod +x encode.sh
# install —strip —strip-program=./encode.sh file /install/path/file
ocehb: (Default)



Помогите собрать программку, которая бы находила фрагмент текста в первом файле (например после слов DESC) и искала бы наличие подобного фрагмента во втором файле,
если такой фрагмент в другом файле находится то записываем этот фрагмент в 3й файл)



# grep -F "$(grep -m1 -A1 DESC file.1 | tail -1)" file.2 > file.3





ocehb: (Default)

sh# stat —format "%Y/%n/%F" * | grep "/regular file\$" | \
  sort -rn | head -1 | cut -d/ -f2


остались разборки с последними одновременно созданными файлами.
ocehb: (Default)
Чтобы не загружать cron'ом систему или удаленную систему, можно использовать рандомизированный sleep.

примеры: )
ocehb: (Default)
grep имеет флаг --line-buffered

как применять )
ocehb: (Default)
тут я привел 2 решения о параллельном запуске нескольких процессов. нашел еще одно:


# print -l *.txt | xargs —max-procs=4 —max-args=1 proc
ocehb: (Default)
на входе -- день года, на выходе -- секунд с начала эпохи


function day2date () {
  local a=$(date -d "1 jan" +"%s")
  while [[ $(date -d "1970-01-01 UTC $a seconds" +"%j") -ne $1 ]]; do
    a=$[$a+24*60*60]
  done
  print $a
}

# date -d "1970-01-01 UTC $(day2date 77) seconds" +"%d-%m-%Y"
18-03-2007
#


zsh'изм, но идея понятна.
ocehb: (Default)
Дан скрипт:

#!/bin/sh -e
action1
action2
action3

action${i} — некоторые существующие в системе программы, прописанные в $PATH. Известно, что action1 и action2 никак не зависят друг от друга и могут выполняться параллельно, однако action3 требуется, чтобы и action1, и action2 успешно завершили свою работу.
Что необходимо изменить в скрипте, чтобы распараллелить работу action1 и action2, но запускать action3 только после успешного завершения action1 и action2?

Решение )

И еще.

Jul. 13th, 2006 01:31 pm
ocehb: (Default)
Имеется файл, каждая строка которого представляет собой запись из двух полей. Поля разделены табуляцией. Первое поле — время в time_t, второе поле — URL. Задача: для каждого встречающегося в файле URL выделить запись, которой соответствует самое раннее время.

Решение )
ocehb: (Default)
Как сравнить (просто узнать совпадают или не совпадают, список различий получать не требуется) два очень больших (таких, что команда diff говорит "memory exhausted" :) текстовых файла?

Решения: )
ocehb: (Default)
В конкретном каталоге перевести все файлы и каталоги (и подкаталоги и т.д.) в нижний регистр.

Как это будет на zsh )
ocehb: (Default)
# GET "http://www.livejournal.com/misc/fdata.bml?user=ocehb" | \
  grep -E "(<|>)" | wc -l
232
# 

Profile

ocehb: (Default)
ocehb

January 2021

S M T W T F S
     12
345 6789
10111213141516
17181920212223
24252627282930
31      

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 6th, 2025 03:41 pm
Powered by Dreamwidth Studios