Попробуйте:
gvim -c "winpos 1600 0"
, где, например, 1600 - ширина пикселя левого монитора. Это должно заставить его начать работу с первым пикселем правильного монитора. Для получения дополнительной информации см. [F2] в vim.
Это нужно сделать в три этапа:
Выбрать номер строки N (пример использует строку 42):sed '42!d'
Искать строку для всех вхождений определенного шаблона (здесь строка / регулярное выражение hello) и напечатайте их отдельно: grep -o 'hello'
Подсчитайте совпадения: wc -l
Или, чтобы поместить его в один командный канал, считая с file.txt:
sed '42!d' file.txt | grep -o 'hello' | wc -l
Это нужно сделать в три этапа:
Выбрать номер строки N (пример использует строку 42):sed '42!d'
Искать строку для всех вхождений определенного шаблона (здесь строка / регулярное выражение hello) и напечатайте их отдельно: grep -o 'hello'
Подсчитайте совпадения: wc -l
Или, чтобы поместить его в один командный канал, считая с file.txt:
sed '42!d' file.txt | grep -o 'hello' | wc -l
Это нужно сделать в три этапа:
Выбрать номер строки N (пример использует строку 42):sed '42!d'
Искать строку для всех вхождений определенного шаблона (здесь строка / регулярное выражение hello) и напечатайте их отдельно: grep -o 'hello'
Подсчитайте совпадения: wc -l
Или, чтобы поместить его в один командный канал, считая с file.txt:
sed '42!d' file.txt | grep -o 'hello' | wc -l
Это хороший пример использования инструментов Unix в конвейере.
line=5
str="ipsum"
sed -n "${line}p" filename | grep -o -- "$str" | wc -l
Команда sed p выводит данную строку файла и передает ее в grep. Опция Grep's -o сообщает ему вывод всех совпадений для данной строки, и каждое соответствие выводится на отдельной строке. Выход Grep подается на wc, который подсчитывает количество строк.
Вот один из способов сделать это в Python через понимание списка (см. ниже для альтернативной более короткой версии).
$ python -c 'import sys;print([ l for i,l in enumerate(sys.stdin,1) if i==2][0].count("word"))' < input.txt
3
$ cat input.txt
nothing here
word and another word, and one more word
last line
Как это работает:
мы запускаем интерпретатор python с флагом -c, были ли команды включены в одинарные кавычки; входной файл input.txt перенаправляется в поток stdin интерпретатора python с помощью оператора оболочки <. Следовательно, нам нужен модуль sys. Используя структуру понимания списка [something for item in something], мы читаем строки текста из sys.stdin. enumerate(sys.stdin,1) позволяет подсчитывать перечисление строк, т. е. с каждой итерацией понимания списка, мы получим строку текста в переменной l и индексе в переменную i, начиная отсчет с 1. Если i==2 будет отфильтруйте только строку, индекс которой равен 2. Вот как мы знаем, какую строку извлечь. Таким образом, наш список будет содержать только один элемент, а в списке его индекс 0. Итак, мы ссылаемся на этот элемент как [<list comprehension stuff here>][0]. -На самом деле .count("word") выполняет работу по подсчету. По определению он возвращает несколько неперекрывающихся вхождений подстроки в строку. наконец, весь этот материал содержался в заявлении print(). Таким образом, любое число, возвращаемое методом .count(), будет отображаться на экране.Более короткий способ сделать то же самое в Python - использовать метод readlines() вместо понимания списка и обратиться к определенному элементу в списке, который readlines() производит. Обратите внимание, что readlines() создает список, а списки в Python индексируются 0, что означает, что если вы хотите прочитать строку x, вам следует ссылаться на элемент списка x-1. Например,
$ python -c 'import sys;print(sys.stdin.readlines()[1].count("word"))' < input.txt
3
Конечно, нам не нужно придерживаться только языков сценариев. sed и grep предоставляют достаточные инструменты, которые мы можем использовать в соответствии с нашими потребностями. С помощью grep -c мы можем подсчитать появление совпадающих строк, поэтому все, что нам нужно сделать, это извлечь нужную нам строку и разделить все слова в этой строке на отдельные строки. Например:
$ sed -n '2{s/ /\n/g;p}' input.txt | grep -c 'word'
3
awk:
awk 'NR==X { print gsub("word",""); }' file
измените X на свой номер конкретной линии. измените слово «слово» на требуемое слово. gsub возвращает номер замены слова, похоже, мы его подсчитываем. Экзамен:
$ cat file:
a b c a a d
d e f f f 1
посмотрим, сколько «f» мы получили в строке «2»:
$ awk 'NR==2 { print gsub("f",""); }' file
3
Один из способов сделать это, в perl:
perl -lne '
BEGIN{($lineno, $str) = splice @ARGV,0,2}
print $c = () = /$str/g if $. == $lineno
' <lineno> <string> <filename>
Это хороший пример использования инструментов Unix в конвейере.
line=5
str="ipsum"
sed -n "${line}p" filename | grep -o -- "$str" | wc -l
Команда sed p выводит данную строку файла и передает ее в grep. Опция Grep's -o сообщает ему вывод всех совпадений для данной строки, и каждое соответствие выводится на отдельной строке. Выход Grep подается на wc, который подсчитывает количество строк.
awk:
awk 'NR==X { print gsub("word",""); }' file
измените X на свой номер конкретной линии. измените слово «слово» на требуемое слово. gsub возвращает номер замены слова, похоже, мы его подсчитываем. Экзамен:
$ cat file:
a b c a a d
d e f f f 1
посмотрим, сколько «f» мы получили в строке «2»:
$ awk 'NR==2 { print gsub("f",""); }' file
3
Вот один из способов сделать это в Python через понимание списка (см. ниже для альтернативной более короткой версии).
$ python -c 'import sys;print([ l for i,l in enumerate(sys.stdin,1) if i==2][0].count("word"))' < input.txt
3
$ cat input.txt
nothing here
word and another word, and one more word
last line
Как это работает:
мы запускаем интерпретатор python с флагом -c, были ли команды включены в одинарные кавычки; входной файл input.txt перенаправляется в поток stdin интерпретатора python с помощью оператора оболочки <. Следовательно, нам нужен модуль sys. Используя структуру понимания списка [something for item in something], мы читаем строки текста из sys.stdin. enumerate(sys.stdin,1) позволяет подсчитывать перечисление строк, т. е. с каждой итерацией понимания списка, мы получим строку текста в переменной l и индексе в переменную i, начиная отсчет с 1. Если i==2 будет отфильтруйте только строку, индекс которой равен 2. Вот как мы знаем, какую строку извлечь. Таким образом, наш список будет содержать только один элемент, а в списке его индекс 0. Итак, мы ссылаемся на этот элемент как [<list comprehension stuff here>][0]. -На самом деле .count("word") выполняет работу по подсчету. По определению он возвращает несколько неперекрывающихся вхождений подстроки в строку. наконец, весь этот материал содержался в заявлении print(). Таким образом, любое число, возвращаемое методом .count(), будет отображаться на экране.Более короткий способ сделать то же самое в Python - использовать метод readlines() вместо понимания списка и обратиться к определенному элементу в списке, который readlines() производит. Обратите внимание, что readlines() создает список, а списки в Python индексируются 0, что означает, что если вы хотите прочитать строку x, вам следует ссылаться на элемент списка x-1. Например,
$ python -c 'import sys;print(sys.stdin.readlines()[1].count("word"))' < input.txt
3
Конечно, нам не нужно придерживаться только языков сценариев. sed и grep предоставляют достаточные инструменты, которые мы можем использовать в соответствии с нашими потребностями. С помощью grep -c мы можем подсчитать появление совпадающих строк, поэтому все, что нам нужно сделать, это извлечь нужную нам строку и разделить все слова в этой строке на отдельные строки. Например:
$ sed -n '2{s/ /\n/g;p}' input.txt | grep -c 'word'
3
Один из способов сделать это, в perl:
perl -lne '
BEGIN{($lineno, $str) = splice @ARGV,0,2}
print $c = () = /$str/g if $. == $lineno
' <lineno> <string> <filename>
Это хороший пример использования инструментов Unix в конвейере.
line=5
str="ipsum"
sed -n "${line}p" filename | grep -o -- "$str" | wc -l
Команда sed p выводит данную строку файла и передает ее в grep. Опция Grep's -o сообщает ему вывод всех совпадений для данной строки, и каждое соответствие выводится на отдельной строке. Выход Grep подается на wc, который подсчитывает количество строк.
awk:
awk 'NR==X { print gsub("word",""); }' file
измените X на свой номер конкретной линии. измените слово «слово» на требуемое слово. gsub возвращает номер замены слова, похоже, мы его подсчитываем. Экзамен:
$ cat file:
a b c a a d
d e f f f 1
посмотрим, сколько «f» мы получили в строке «2»:
$ awk 'NR==2 { print gsub("f",""); }' file
3
Вот один из способов сделать это в Python через понимание списка (см. ниже для альтернативной более короткой версии).
$ python -c 'import sys;print([ l for i,l in enumerate(sys.stdin,1) if i==2][0].count("word"))' < input.txt
3
$ cat input.txt
nothing here
word and another word, and one more word
last line
Как это работает:
мы запускаем интерпретатор python с флагом -c, были ли команды включены в одинарные кавычки; входной файл input.txt перенаправляется в поток stdin интерпретатора python с помощью оператора оболочки <. Следовательно, нам нужен модуль sys. Используя структуру понимания списка [something for item in something], мы читаем строки текста из sys.stdin. enumerate(sys.stdin,1) позволяет подсчитывать перечисление строк, т. е. с каждой итерацией понимания списка, мы получим строку текста в переменной l и индексе в переменную i, начиная отсчет с 1. Если i==2 будет отфильтруйте только строку, индекс которой равен 2. Вот как мы знаем, какую строку извлечь. Таким образом, наш список будет содержать только один элемент, а в списке его индекс 0. Итак, мы ссылаемся на этот элемент как [<list comprehension stuff here>][0]. -На самом деле .count("word") выполняет работу по подсчету. По определению он возвращает несколько неперекрывающихся вхождений подстроки в строку. наконец, весь этот материал содержался в заявлении print(). Таким образом, любое число, возвращаемое методом .count(), будет отображаться на экране.Более короткий способ сделать то же самое в Python - использовать метод readlines() вместо понимания списка и обратиться к определенному элементу в списке, который readlines() производит. Обратите внимание, что readlines() создает список, а списки в Python индексируются 0, что означает, что если вы хотите прочитать строку x, вам следует ссылаться на элемент списка x-1. Например,
$ python -c 'import sys;print(sys.stdin.readlines()[1].count("word"))' < input.txt
3
Конечно, нам не нужно придерживаться только языков сценариев. sed и grep предоставляют достаточные инструменты, которые мы можем использовать в соответствии с нашими потребностями. С помощью grep -c мы можем подсчитать появление совпадающих строк, поэтому все, что нам нужно сделать, это извлечь нужную нам строку и разделить все слова в этой строке на отдельные строки. Например:
$ sed -n '2{s/ /\n/g;p}' input.txt | grep -c 'word'
3
Один из способов сделать это, в perl:
perl -lne '
BEGIN{($lineno, $str) = splice @ARGV,0,2}
print $c = () = /$str/g if $. == $lineno
' <lineno> <string> <filename>