Готовые решения для многих вопросов, которые очень часто задаются снова и снова.
Модератор: Модераторы разделов
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian
Сообщение
diesel » 24.05.2006 21:12
nerezus писал(а): ↑ 24.05.2006 21:07
Как убить процессы, имя исполняемого файла которых начинается на sv_. Одной коммандой.
Просто надоело список процессов ps aux |grep sv_
а потом kill -9 пид1 пид2 пид3...
Как это в 1 комманду объединить? =)
ps aux |grep sv_|awk '{print $2}'|kill
или kill `ps aux |grep sv_|awk '{print $2}'`
$1, $2 - смотря какой там колонкой pid идет 1-й, 2-й ...
Date Naoki
Сообщения: 15
Сообщение
Date Naoki » 24.05.2006 23:02
Есть : текстовый файл диких размеров, построенный по принципу:
Слова, со знаками препинаниями и пробелами*СЛОВО
И так очень много строк.
Нужно получить файл с таким раскладом:
Слова, со знаками препинаниями и пробелами*слово
Делаю cat 1.txt | tr [:upper:] [:lower:] > 2.txt
Получается, но в первой части тоже теряю заглавные буквы =(
Как это нормальн осделать ? Эксперименты с tr не дали результата (
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих
Сообщение
elide » 24.05.2006 23:14
Код: Выделить всё
cat 1.txt | awk -F* '{print $1 "*" tolower($2)}' > 2.txt
слава роботам!
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус
Сообщение
KiWi » 24.05.2006 23:22
elide писал(а): ↑ 24.05.2006 23:14
Код: Выделить всё
cat 1.txt | awk -F* '{print $1 "*" tolower($2)}' > 2.txt
* а me долго мудрил для нескольких звёздочек и намудрил
Код: Выделить всё
cat 1.txt awk -v ORS='' -F '*' '{ for(i = 1; i < NF; ++i) { print $i; print "*"; }; print tolower($NF); print "\n" }' > 2.txt
:-)
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих
Сообщение
elide » 24.05.2006 23:22
для этого есть pgrep. а у него есть man.
слава роботам!
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian
Сообщение
diesel » 24.05.2006 23:25
elide писал(а): ↑ 24.05.2006 23:22
для этого есть pgrep. а у него есть man.
команда о которой забываешь когда он нада
Date Naoki
Сообщения: 15
Сообщение
Date Naoki » 24.05.2006 23:54
Фига себе. Первая команда прошла за 2 секунды и всё выполнила отлично.
Дело сделано. Спасибо.
Ради эксперимента перегрузился в винду и попробовал ОТКРЫТЬ этот файл ))))
Эксплорер, блокнот и AkelPad зависли нафиг.
Концептуально )
boombick
Сообщения: 516
Статус: Anonymous
ОС: ArchLinux 0.8 Voodoo
Сообщение
boombick » 25.05.2006 11:25
а killall sv_* не поможет?
meskalin1974
Сообщения: 338
ОС: Xubuntu, WinXP 64bit
Сообщение
meskalin1974 » 27.05.2006 18:28
Пишу скрипт. Какую маску файлов указывать, чтобы выделить все файлы, начинающиеся с точки? Если просто .*, то выделяются все файлы в тек. директории. Пробовал экранировать точку \.*, но то же самое.
AMD Athlon 64 x2 3800+, 2 GB RAM, 2x 200 SATA II Seagate RAID 0, GeForce 7900GS
Shura
Сообщения: 1537
Статус: Оказывается и без KDE есть жизнь
ОС: FreeBSD 8.0-RC2
Сообщение
Shura » 27.05.2006 18:33
а что за щелл?
у меня bash, когда делаю echo .* выводятся только те файлы, что начинаются с точки.
Rock'n'roll мертв © БГ
meskalin1974
Сообщения: 338
ОС: Xubuntu, WinXP 64bit
Сообщение
meskalin1974 » 27.05.2006 18:40
Название шела в названии топика - bash. Надо чтоб не только файлы скрытые выбирались, но и папки. Просто .* выделяет вообще все в текущей папке.
AMD Athlon 64 x2 3800+, 2 GB RAM, 2x 200 SATA II Seagate RAID 0, GeForce 7900GS
polachok
Бывший модератор
Сообщения: 2199
Статус: главный форумный маргинал
ОС: gnu/linux
Сообщение
polachok » 27.05.2006 18:43
find . -name ".*"
И немедленно выпил.
DeadMoroZ
Сообщения: 2
Сообщение
DeadMoroZ » 03.06.2006 19:41
Подскажите люди добрые, каким образом при поиске командой find возможно исключить определенные директории из поиска.
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус
Сообщение
KiWi » 03.06.2006 20:37
У злостной команды find есть такой злостный -wholename, который в комбинации с ! (! -wholename) реализует совершенно незлую функцию исключения директорий, файлов и прочего.
DeadMoroZ
Сообщения: 2
Сообщение
DeadMoroZ » 03.06.2006 22:20
Ну ладно ладно, улыбочки забыл поставить.
Можно закрывать.
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус
Сообщение
KiWi » 03.06.2006 22:34
DeadMoroZ писал(а): ↑ 03.06.2006 22:20
Ну ладно ладно, улыбочки забыл поставить.
Можно закрывать.
А я не забыл -- мне просто лень их ставить.
deninok
Сообщения: 585
Статус: Программист С++
ОС: Debian GNU/Linux
Сообщение
deninok » 14.06.2006 12:48
Уважаемые участники форума!
Простой вопрос: как найти нужный текст в большом количестве текстовых файлов? Какие функции использовать?
Заранее благодарен.
JaGoTerr
Сообщения: 380
Сообщение
JaGoTerr » 14.06.2006 14:07
man grep
пример:
fgrep -R "my string" .
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих
Сообщение
elide » 14.06.2006 14:09
хм... а что, ты знаешь как искать в файлах ненужный текст?
grep 'pattern' FILE-LIST
слава роботам!
sentrydroid
Сообщения: 9
Сообщение
sentrydroid » 15.07.2006 11:08
я хочу найти опр. файл находясь в корне, скажите, как это зделать из консоли?
что-то find я непонял как работает.
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu
Сообщение
alv » 15.07.2006 11:25
sentrydroid писал(а): ↑ 15.07.2006 11:08
я хочу найти опр. файл находясь в корне, скажите, как это зделать из консоли?
что-то find я непонял как работает.
в вашем случае -
find / -name имя_файла
подробности - man find
Мак Сим
Сообщения: 231
ОС: Ubuntu 9.04
Сообщение
Мак Сим » 15.07.2006 12:50
Я бы ответил RTFM. А так alv уже всё сказал...
2:5020/8086.465
Мой открытый PGP-ключ
тут
Dell Inspiron 2200 - Debian(testing)
sentrydroid
Сообщения: 9
Сообщение
sentrydroid » 15.07.2006 13:21
Мак Сим писал(а): ↑ 15.07.2006 12:50
Я бы ответил RTFM.
бывает и такое... мне про ето расказывали
iZEN
Сообщения: 225
Сообщение
iZEN » 05.10.2006 22:08
Здрастьте.
Как с помощью комбинации команд find и rename можно переименовать файлы во вложенных каталогах?
Пасибо.
polachok
Бывший модератор
Сообщения: 2199
Статус: главный форумный маргинал
ОС: gnu/linux
Сообщение
polachok » 05.10.2006 22:28
man find ; man rename ?
И немедленно выпил.
iZEN
Сообщения: 225
Сообщение
iZEN » 05.10.2006 22:30
polachok писал(а): ↑ 05.10.2006 22:28
man find ; man rename ?
Ниасилил регулярные выражения.
$ find -name '*.JPEG' -exec rename 'y/A-Z/a-z/'' * {} \;
- какая-то хрень...
router
Сообщения: 363
ОС: Debian, на работе rhel
Сообщение
router » 06.10.2006 00:41
iZEN писал(а): ↑ 05.10.2006 22:30
$ find -name '*.JPEG' -exec rename 'y/A-Z/a-z/'' * {} \;
Код: Выделить всё
$ find ./ -type f -name '*.JPEG' -exec rename 'y/A-Z/a-z/' {} \;
добавлено:
Упс, ступил. Тогда не знаю. Если можно не ограничиваться rename, то подойдёт вот этот монстр:
Код: Выделить всё
find ./ -type f -name '*.JPEG'| \
while read a;do \
filename="`basename \"$a\"`"; dirname="`dirname \"$a\"`"; \
newfilename="`echo \"$filename\" | tr [A-Z] [a-z]`"; \
if [ "$filename" != "$newfilename" ]; then \
mv "${dirname}/${filename}" "${dirname}/${newfilename}"; \
fi; \
done
Или так: myrename.pl
Код: Выделить всё
#!/usr/bin/perl
use strict;
my ($fullname,$oldname,$newname,$dirname,$template);
if ($#ARGV<0) {$fullname="./"} else {$fullname="$ARGV[0]"};
if ($#ARGV<1) {$template="*"} else {$template="$ARGV[1]"};
for (`find "$fullname" -type f -name "$template"`) {
chomp();
($dirname,$oldname) = /^(.*)\/([^\/]*)$/;
( $newname = $oldname ) =~ tr/A-Z/a-z/;
rename("${dirname}/${oldname}","${dirname}/${newname}");
}
Последний вариант, ессно, шустрее
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian
Сообщение
diesel » 06.10.2006 03:25
Код: Выделить всё
dc vasya $ for i in `seq 1 10`; do touch $i.JPEG; done
dc vasya $ ls
10.JPEG 1.JPEG 2.JPEG 3.JPEG 4.JPEG 5.JPEG 6.JPEG 7.JPEG 8.JPEG 9.JPEG
dc vasya $ touch test\ 123.JPEG
dc vasya $ ls
10.JPEG 1.JPEG 2.JPEG 3.JPEG 4.JPEG 5.JPEG 6.JPEG 7.JPEG 8.JPEG 9.JPEG test 123.JPEG
dc vasya $ ls *.JPEG|while read i; do echo mv "$i" "`echo $i|tr A-Z a-z`"; done
mv 10.JPEG 10.jpeg
mv 1.JPEG 1.jpeg
mv 2.JPEG 2.jpeg
mv 3.JPEG 3.jpeg
mv 4.JPEG 4.jpeg
mv 5.JPEG 5.jpeg
mv 6.JPEG 6.jpeg
mv 7.JPEG 7.jpeg
mv 8.JPEG 8.jpeg
mv 9.JPEG 9.jpeg
mv test 123.JPEG test 123.jpeg
dc vasya $ ls *.JPEG|while read i; do mv "$i" "`echo $i|tr A-Z a-z`"; done
dc vasya $ ls
10.jpeg 1.jpeg 2.jpeg 3.jpeg 4.jpeg 5.jpeg 6.jpeg 7.jpeg 8.jpeg 9.jpeg test 123.jpeg
Сори что
1. без find'а - переделать легко ИМХО
2. без rename - у меня он работает не так как у Вас
router
Сообщения: 363
ОС: Debian, на работе rhel
Сообщение
router » 06.10.2006 07:38
diesel
С этим справляется и первоначальный вариант с find и rename. Проблема в том, что он при преименовании файлов в _подкаталогах_ имена подкаталогов тоже преобразовываются в нижний регистр
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian
Сообщение
diesel » 06.10.2006 09:36
router писал(а): ↑ 06.10.2006 07:38
diesel
С этим справляется и первоначальный вариант с find и rename. Проблема в том, что он при преименовании файлов в _подкаталогах_ имена подкаталогов тоже преобразовываются в нижний регистр
дык искать нужно только файлы ...
find -type f
find -type f -name "*.JPEG"
я думал с rename пробелемы