отображать строки, содержащие не более 4 слов во втором столбце

Есть еще 3 шага в настройке Ubuntu 16.04 для обслуживания содержимого aspx, находящегося в разных корневых каталогах.

  1. Поместите это в конец apache2.coonf

    Псевдоним / test "/ usr / share / doc / xsp / test" Псевдоним / personal "/ home / user / mypages" AddMonoApplications default "/ test: / usr / share / doc / xsp / test, / personal: / home / user / mypages " SetHandler mono SetHandler mono {{1} }

    1. исходный / etc / apache2 / envvars после его изменения следующим образом:

      envvars - переменные среды по умолчанию для apache2ctl

      это будет неверно после изменения uid

      unset HOME

      для поддержки нескольких экземпляры apache2

      if ["$ {APACHE_CONFDIR ## / etc / apache2-}"! = "$ {APACHE_CONFDIR}"]; затем SUFFIX = "- $ {APACHE_CONFDIR ## / etc / apache2 -}" else SUFFIX = fi

      Поскольку разумного способа не существует чтобы получить проанализированную конфигурацию apache2 в сценариях, некоторые параметры

      определяются через переменные среды и затем используются в apache2ctl,

      /etc/init.d/apache2, /etc/logrotate.d/apache2 и т. д.

      экспорт APACHE_RUN_USER = venkat экспорт APACHE_RUN_GROUP = venkat

      расположение файла временного состояния. Это можно изменить на / run в Wheezy + 1

      export APACHE_PID_FILE = / var / run / apache2 / apache2.pid export APACHE_RUN_DIR = / var / run / apache2 export APACHE_LOCK_DIR = / var / lock / apache2

      Только / var / log / apache2 обрабатывается /etc/logrotate.d/apache2.

      export APACHE_LOG_DIR = / var / log / apache2

      Языковой стандарт, используемый некоторыми модулями, такими как mod_dav

      export LANG = C

      Раскомментируйте следующую строку, чтобы вместо этого использовать системный языковой стандарт по умолчанию:

      . / etc / default / locale

      export LANG

      Команда для получения статуса для 'apache2ctl status'.

      Некоторым пакетам, предоставляющим 'www-browser', требуется '--dump' вместо '-dump'.

      export APACHE_LYNX = 'www-browser -dump'

      Если вам нужен более высокий предел дескриптора файла, раскомментируйте и настройте следующую строку

      (по умолчанию 8192):

      APACHE_ULIMIT_MAX_FILES = 'ulimit -n 65536 '

      Если вы хотите передать аргументы веб-серверу, добавьте их ниже

      в среду APACHE_ARGUMENTS.

      export APACHE_ARGUMENTS = ''

      Включить режим отладки для сценариев сопровождающего.

      Это даст подробный вывод об установках пакетов модулей веб-сервера и установках веб-приложений

      , которые взаимодействуют с Apache

      export APACHE2_MAINTSCRIPT_DEBUG = 1

      1. В верхней части apache2.conf поместите строку: { {1}} LoadModule mono_module /usr/lib/apache2/modules/mod_mono.so.

      2. Чтобы проверить это, поместите http://127.0.0.1/test/Default.cs и поместите http://127.0.0.1/personal/Default.cs в Веб-браузер Firefox.

3
12.02.2016, 00:25
4 ответа

Можно сделать с помощью небольшого скрипта python:

#!/usr/bin/env python3
import sys

for l in open(sys.argv[1]).readlines():
    l = l.strip()
    print(l) if len([s for s in l.split("<s>")[-1].split()
             if not all([s.startswith("<"), s.endswith(">")])]) <= 4 else ("")

Если у вас установлен python3 :

  • Скопируйте его в пустой файл и сохраните как get_colls.py
  • Запустите его с файлом в качестве аргумента:

     python3 /path/to/get_colls.py  
     

Вывод в примере:

M07UP49A0870I422.wav    <s> haraa keelaa <bn> </s>
M07UP49A0870I423.wav    <s> <horn> jau <babble>  </s>

Пояснение

Сценарий:

  • разделяет строку разделителем
  • во втором разделе, считает строки, не , начиная с < и заканчивая >
  • распечатывает строки длиной <= 4
2
27.01.2020, 21:12

Следующий скрипт AWK сохраняет исходную строку в x, удаляет все теги, а затем подсчитывает количество слов (минус 1 для скидки на имя файла в первом поле). Если количество слов меньше 5, он печатает исходную строку:

awk '{x=$0; gsub(/<[^>]*>/, "")} NF-1<5 {print x}' filename
3
27.01.2020, 21:12

Эта команда должна работать:

awk -F "wav" '{print $ 2}' file | awk '{gsub ("<[^>] *>", "")} 1' | awk 'NF <4'

0
27.01.2020, 21:12

Использование awk здесь, вероятно, лучше всего, поскольку позволяет четко выразить свою мысль (отделите теги, должно остаться не более 4 слов, не включая первый столбец). Но вы также можете сделать это с помощью grep, поскольку это просто вопрос фильтрации строк, а фильтр может быть описан регулярным выражением.

grep -vE '^ *[^ ]+((<[^>]*>| )+[^<> ]+){5}'
  • -v: исключить совпадающие строки
  • -E: использовать расширенный синтаксис регулярного выражения
  • ^ *[^ ]+ соответствует первому слову в начале строки
  • (...){5} означает 5 или более из того, что находится в скобках
  • (<[^>]*>| )+ соответствует непустой последовательности пробелов и тегов
  • [^<> ]+ соответствует слову без тега
2
27.01.2020, 21:12

Теги

Похожие вопросы