Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
admin Site Admin
Зарегистрирован: 11.09.2008 Сообщения: 546
|
Добавлено: Сб Ноя 21, 2009 1:07 am Заголовок сообщения: однострочные скрипты |
|
|
collection of one-liners, a part is adapted from such a list by
Tom Christianson, one of the authors of "Programming Perl".
# the always present hallo world program, adapted to a Math department
perl -e 'print "Hello Mr Euler!\n"'
# rename in each file name the string aaa by bbb
ls | perl -ne 'chomp; next unless -e; $o = $_; s/aaa/bbb/; next if -e; rename $o, $_';
# add first and last column in each line of file foo.txt and print it out
perl -lane 'print $F[0] + $F[-1]' foo.txt
# print lines 15 to 17 of file foo.txt
perl -ne 'print if 15 .. 17' foo.txt
# a second way to print lines 3 to 5 of file foo.txt
perl -pe 'exit if 3<$. && $.<5' foo.txt
# change all words "foo"s to "bar"s in every .c file and keep backups
perl -p -i.bak -e 's/\bfoo\b/bar/g' *.c
# the same but without backup. Remember the flags: "eat the pie"
perl -p -i -e 's/foo/bar/g' *.c
# changes ^M newline characters to newlines
perl -p -i -e 's/\012?\015/\n/g' $1
# the same but with all files with name filename
perl -p -i -e 's/foo/bar' `find . -name "filename"`
# substitution can also be applied to binary files like test.ppm
perl -p -i -e 's/255/127/g' test.ppm
# substitute "xyz.math" to "abc.math" in every .html file and keep backups
perl -p -i.bak -e 's/xyz\.math/abc\.math/g' *.html
# insert department name after each title and keep backup
perl -p -i.bak -e 's#<title>#<title>Harvard .: #i' *.html
# delete first 10 lines in foo.txt and keep backup foo.txt.bak
perl -i.bak -ne 'print unless 1 .. 10' foo.txt
# change isolated occurrence of aaa to bbb in each file *.c or *.h
perl -p -i.bak -e 's{\baaa\b}{bbb}g' *.[ch]
# reverses lines of file foo.txt and print it
perl -e 'print reverse <>' foo.txt
# find palindromes in a dictionary /usr/share/dict/words
perl -lne 'print if $_ eq reverse' /usr/share/dict/words
# reverses paragraphs in file foo.txt
perl -00 -e 'print reverse <>' foo.txt
# increments all numbers in foo.tx by 1
perl -pe 's/(\d+)/ 1 + $1 /ge' foo.txt
# reverses order of characters in each line of foo.txt
perl -nle 'print scalar reverse $_' foo.txt
# print lines beween START and END in foo.txt to STDOUT
perl -ne 'print if /^START$/ .. /^END$/' foo.txt
# delete lines beween START and END and backup original file
perl -i.old -ne 'print unless /^START$/ .. /^END$/' foo.txt
# look for duplicated words in a line
perl -0777 -ne 'print "$.: doubled $_\n" while /\b(\w+)\b\s+\b\1\b/gi' foo.txt
# start Perl debugger "stand-alone"
perl -d -e 42
# run a Perl program program.pl with warnings
perl -w program.pl
# run a Perl program program.pl with debugger
perl -d program.pl
# Run perl program program.pl, check syntax, print warnings
perl -wc program.pl |
|
Вернуться к началу |
|
![](templates/AllSat/images/spacer.gif) |
admin Site Admin
Зарегистрирован: 11.09.2008 Сообщения: 546
|
Добавлено: Вс Ноя 01, 2015 5:46 pm Заголовок сообщения: |
|
|
сравнение двух списков
grep -Fxv -f backuplist.txt userlist.txt |
|
Вернуться к началу |
|
![](templates/AllSat/images/spacer.gif) |
admin Site Admin
Зарегистрирован: 11.09.2008 Сообщения: 546
|
Добавлено: Ср Ноя 25, 2015 7:41 pm Заголовок сообщения: |
|
|
https://nixtricks.wordpress.com/2013/01/09/sed-delete-the-lines-lying-in-between-two-patterns/
Let’s take an plain text file, input.txt, that looks like this
PATTERN-1
First line of unimportant text
Second line of unimportant text
PATTERN-2
Some more texts (may/ mayn't be important!)
We want to delete some of the lines from the file using the command line stream editor, sed.
1. Use the following command to delete the lines lying between PATTERN-1 and PATTERN-2 , excluding the lines containing these patterns:
sed '/PATTERN-1/,/PATTERN-2/{//!d}' input.txt
If you want to modify the file itself, instead of just the file stream, include the “-i” flag after sed.
2. Use the following command to delete the lines lying between PATTERN-1 and PATTERN-2 , including the lines containing these patterns:
sed '/PATTERN-1/,/PATTERN-2/d' input.txt
3. To delete all the lines after PATTERN-2, use this
sed '/PATTERN-1/,$d' input.txt
4. To delete lines, say 2 through 4 (if you know the correct line numbers, of course!), use this
sed '2,4d' input.txt
Here is a good sed reference. |
|
Вернуться к началу |
|
![](templates/AllSat/images/spacer.gif) |
admin Site Admin
Зарегистрирован: 11.09.2008 Сообщения: 546
|
Добавлено: Вт Авг 23, 2016 8:43 am Заголовок сообщения: Убрать перенос строки ^M из файла |
|
|
Убрать перенос строки ^M из файла
perl -i -npe 's/\r//' /путь/имя_файла |
|
Вернуться к началу |
|
![](templates/AllSat/images/spacer.gif) |
admin Site Admin
Зарегистрирован: 11.09.2008 Сообщения: 546
|
Добавлено: Вт Янв 10, 2017 12:30 pm Заголовок сообщения: |
|
|
ip addr show |
|
Вернуться к началу |
|
![](templates/AllSat/images/spacer.gif) |
admin Site Admin
Зарегистрирован: 11.09.2008 Сообщения: 546
|
Добавлено: Вс Мар 12, 2017 12:44 pm Заголовок сообщения: |
|
|
http://www.shellhacks.com/ru/Udalenie-Pervyh-i-Poslednih-Simvolov-iz-Strok-v-Bash
как удалить несколько символы в начале кажой строки в Bash и как напечатать часть строки между заданными первым и последним символами, используя команду cut.
Вы также узнаете как удалить последние символы в конце каждой строки с помощью хитрости и команды reverse.
Я создал файл со следующим содержимым и буду использовать его в примерах ниже. Допустим нам необходимо удалить несколько символов с начала и с конца каждой строки этого файла.
$ cat file
12345===I Love Bash===54321
12345===I Love Bash===54321
12345===I Love Bash===54321
Удалить Первые N Символов Каждой Строки
Используйте следующую команду чтобы удалить первые 5 символов каждой строки (удаляем первые 5 символов и печатаем каждую строку, начиная с 6-ого символа) :
$ cat file | cut -c 6-
===I Love Bash===54321
===I Love Bash===54321
===I Love Bash===54321
Печать Строки Между Заданными Символами
Используйте следующую команду чтобы напечатать содержимое каждой строки между 9-ым и 20-ым символами в Bash :
$ cat file | cut -c 9-20
I Love Bash
I Love Bash
I Love Bash
Печать Первых N Символов Каждой Строки
Используйте следующую команду чтобы напечатать первые 20 символов каждой строки в Bash :
$ cat file | cut -c 1-20
12345===I Love Bash
12345===I Love Bash
12345===I Love Bash
Удалить Последний Символ Каждой Строки
Используя сочетание команд reverse и cut, мы можем удалять последние N символов каждой строки, как показано ниже. (источник)
Используйте следующую команду чтобы удалить последний символ каждой строки в Bash :
$ rev file | cut -c 2- | rev
12345===I Love Bash===5432
12345===I Love Bash===5432
12345===I Love Bash===5432
Удалить Последние N Символов Каждой Строки
Используйте следующую команду чтобы удалить последние 8 символов каждой строки в Bash :
$ rev file | cut -c 9- | rev
12345===I Love Bash
12345===I Love Bash
12345===I Love Bash |
|
Вернуться к началу |
|
![](templates/AllSat/images/spacer.gif) |
admin Site Admin
Зарегистрирован: 11.09.2008 Сообщения: 546
|
Добавлено: Чт Июн 14, 2018 11:34 am Заголовок сообщения: |
|
|
удаление последнего символа в строке
cat file | sed 's/.$//' |
|
Вернуться к началу |
|
![](templates/AllSat/images/spacer.gif) |
admin Site Admin
Зарегистрирован: 11.09.2008 Сообщения: 546
|
Добавлено: Пт Июл 13, 2018 4:49 pm Заголовок сообщения: |
|
|
поиск службы на порту
netstat -a | grep 5910 |
|
Вернуться к началу |
|
![](templates/AllSat/images/spacer.gif) |
admin Site Admin
Зарегистрирован: 11.09.2008 Сообщения: 546
|
Добавлено: Вт Сен 18, 2018 4:19 pm Заголовок сообщения: |
|
|
cat /etc/issue
определенеи системі |
|
Вернуться к началу |
|
![](templates/AllSat/images/spacer.gif) |
admin Site Admin
Зарегистрирован: 11.09.2008 Сообщения: 546
|
Добавлено: Сб Июн 27, 2020 11:03 am Заголовок сообщения: rsync на нестандартный порт |
|
|
rsync -avz --bwlimit=500 -e "ssh -p 1234" /local_folder/ user@host:/remote_folder/ |
|
Вернуться к началу |
|
![](templates/AllSat/images/spacer.gif) |
|