короткие csvgrep эквиваленте как bash падение-в функции

Вопрос: хороший "прозрачной" замены, чтобы команда grep несколько строк в CSV - файлы, содержащие некоторые ключевые слова в несколько колонок.

Требования: поддержка более сложных CSV-файлов - это есть двойные кавычки, переносы строк.

Usecase: "csvkit" является удивительным, но это может быть слишком много, чтобы просто написаны несколько строк.

Есть очень хороший csvkit для работы с CSV-файл файлы, которая включает csvgrep. Но иногда, окружающей среды, для которых мы пишем скрипт не имеет csvkit isntalled и установке/компиляции все может быть перебор для просто greping несколько строк из csv файла.

+816
RyanF121 2 авг. 2014 г., 02:59:50
28 ответов

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

$ кот functions.sh
#!/бин/Баш

sampleFunction(){
 если [[ ! "${fakeVariable}" == '2' ]]
тогда
 читать -Н1-р-р "об ошибке! Нажмите любую клавишу для продолжения ..."
интернет
}
sampleFunction
Эхо "Ну, привет!"

Когда я запускаю:

если ! 2>/dev/нуль . "${Дом}"'/functions.sh'
тогда
 Эхо "${дом}"'/functions.sh не может быть вставлен. Прекращение ...'
интернет

Консоль не выводит ошибку! Нажмите любую клавишу для продолжения ..., вместо этого он просто сидит там, ждет меня, чтобы нажать клавишу. Как только я это сделаю, я вижу, Ну привет напечатано.

Если functions.sh должны были быть отсутствует в$Home, то он будет печатать:

/Users/leetbacoon/functions.sh не может быть вставлен. Прекращение ...

как надо.

Если я беру 2>/Дев/нуль, и если functions.sh существует, я получаю ошибку! Нажмите любую клавишу для продолжения ... распечатал как надо, как хорошо, как хорошо, привет! после нажатия на клавишу.

Если я беру 2>/Дев/нуль, и если functions.sh это отсутствует, я получаю:

-Баш: /Users/leetbacoon/functions.sh: нет такого файла или каталога
/Users/leetbacoon/functions.sh не может быть вставлен. Прекращение ...

В общем, что я хочу, это:

$ ### functions.sh существует
$ если ! 2>/dev/нуль . "${Дом}"'/functions.sh' ; затем Эхо "${дом}"'/functions.sh не может быть вставлен. Прекращение ...' ; интернет
Ошибка! Нажмите любую клавишу для продолжения ...
Ну, привет!
$ ###
$ ### functions.sh не существует
$ если ! 2>/dev/нуль . "${Дом}"'/functions.sh' ; затем Эхо "${дом}"'/functions.sh не может быть вставлен. Прекращение ...' ; интернет
/Users/leetbacoon/functions.sh не может быть вставлен. Прекращение ...

ОС и macOS высокая Сьерра 10.13.6 и bash версия 3.2.57(1)-релиз

+965
Sylvain Raybaud 03 февр. '09 в 4:24

Итак, в моем случае, единственный способ заставить счетчиков сброс будет перезагрузить сервер. Не идеал, но это тот случай.

Как уже упоминалось, ilkkachu, вероятно, лучший способ сделать это было бы сохранить значение в начале нового месяца, а затем рассчитать с этой точки вперед. Однако, я не мог обернуть мою голову вокруг элегантный способ сделать это с помощью скрипта на данный момент я настроил.

Так вместо этого, я пошла на перезагрузку-мой сервер-раз в месяц сценарий. Я включил фрагмент кода, который я использовал ниже:

# ПРОВЕРКА ФАЙЛА OLD_MONTH 
если [ ! -э /usr/местные/Бен/системы/old_month ]; тогда
 # СОЗДАЙТЕ ЕГО ЕСЛИ ОН НЕ СУЩЕСТВУЕТ С ЭТОГО МЕСЯЦА ДАТА
 дата Эхо `` | у awk '{печати $2,$6}' > /usr/местные/Бен/системы/old_month
интернет

# СОЗДАТЬ НОВЫЙ ФАЙЛ КАЖДЫЙ РАЗ, КОГДА ЭТО ЗАПУСКАЕТСЯ С ЭТОГО МЕСЯЦА ДАТА
дата Эхо `` | у awk '{печати $2,$6}' > /usr/местные/Бен/системы/this_month

# ПРОВЕРИТЬ, ЕСЛИ OLD_MONTH И THIS_MONTH НЕ СОВПАДАЮТ
если ! СМР /usr/местные/Бен/системы/this_month /usr/местные/Бен/системы/old_month > /dev/нуль 2>&1 ;
тогда
 # ЗАПУСТИТЬ СВОЙ КОД ЗДЕСЬ #
 Эхо `дата` | у awk '{печати $2,$6}' > /usr/местные/Бен/системы/old_month # обновить значение в OLD_MONTH, так что они будут соответствовать в следующий раз
 перегружаемся # перезагрузка
 выход 0 # и выйти из этого сценария
интернет
+939
KL66 4 нояб. 2013 г., 13:47:10
Другие ответы

Связанные вопросы


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

Файл в/etc/sysconfig нужно/как i18n - это место для внесения изменений. Но он содержит правильные настройки в вашем примере. Никакие изменения должны быть внесены в файл/etc/sysconfig нужно/клавиатуры (если он работал, оставьте его в покое). На самом деле на мой Centos6.х, у меня есть каталог в файл/etc/sysconfig нужно/консоль (которая может содержать таблицы) — и список рассылки для обсуждения с 2002 намекает, что это был каталог, по крайней мере, что долго.. некоторые другие системы файла есть, например, Линукс с нуля.

Чтобы получить "формате ASCII", как просил означает, что вы должны изменить язык системы, который находится в каталоге/etc/sysconfig нужно/как i18n помощью Ланг собственность. По умолчанию, что бы

Ланг="язык.В UTF-8"
SYSFONT="latarcyrheb-sun16"

(или некоторые другие Ланг с "УТФ-8", что дает более или менее тот же эффект). Я изменил мою машину, чтобы соответствовать вашим, проверяя, что значения совпали с машины:

Ланг="язык.iso88591"
SYSFONT="iso01.16"

то есть, Лэнг значение в язык -это:

en_SG.в utf8
язык
язык.iso88591
язык.iso885915
язык.в utf8
en_ZA

и SYSFONT - имя файла шрифта консоли:

/lib/kbd/consolefonts/iso01.16.gz

После внесения изменений, я перезагрузил и вижу "формате ASCII" поведение на каждом из телетайпа (в 2-6, так как X работает на tty1). Но проверка с showconsolefont показывает, что он по-прежнему загружает исходный шрифт. Что находится в файле/boot/grub/с жратвы.конф. Редактирования , что файл изменить SYSFONT=latarcyrheb-sun16 в SYSFONT=iso01.16 дает желаемого эффекта. Вот скриншот:

screenshot after changing SYSFONT in CentOS6

То есть, в ИСО-8859-1 шрифт загружается. Клавиатуры (т. е. с нами) будем делать только "формате ASCII" без некоторые интересные раскладки.

Для дальнейшего чтения:

+921
Russel 8 дек. 2013 г., 01:40:31

В общем случае вы должны сделать:

на awk '{
 Для (я=2; я<=НФ; я++) {
 sumcols[я]+= $я; sumrows+= $я 
 }; печати $0, sumrows
}
Конец { для (X в sumcols)
 { функции printf сентября sumcols[х]; сентября=ФС };
 печать ""
}' входной_файл

В sumcols[я]+= $я часть-подведение итогов поля значения в одном столбце позиции; и sumrows+= $я это делаю сумму в одни и те же строки позиции, то строки печатать после каждой строчки читал с принтом $0, sumrows;

и в конце петли за sumcols массив и использовать функции printf для печати в одну строку. С сентября - это параметр со значением по умолчанию Фполе сeparator для второй печати в следующем Для того, чтобы добавить один пробел между каждым.

+872
SwiftDeveloper 1 апр. 2018 г., 02:20:03

Существует ли простой способ использовать поддержки файловой системы reiser4 на Debian хриплый?

Я установил reiser4progs, но, очевидно, мне нужно патченное ядро, а также использовать его. Есть ли какой-то полу-официально поддерживается в ядре где-то установить?

Или какие альтернативные файловые системы (кроме файловой системы Btrfs, который я использовала раньше - это были серьезные проблемы, ЦП) для многих мелких файлов можно использовать?

Редактировать: я уже нашла http://kernelnewbies.org/WhyReiser4IsNotIn (это с 2006 года так довольно давно, да?) и http://sourceforge.net/projects/reiser4/files/reiser4-for-linux-3.x/ уже, но я надеялся, что есть лучший путь.

+853
jarnoan 8 июл. 2012 г., 01:23:11

Я решил эту проблему, глядя на выход:

список-единицы systemctl --нет-пейджер

Что показал мне много подразделений, я не ожидала, как и всех сетевых устройств!

системы устройств-виртуальных-нетто-lan0.устройство загруженного активного подключен /системы/устройства/виртуальные/сеть/LAN

Так что я добавил

BindsTo=Сыс-устройств-виртуальных-нетто-lan0.устройство
После=Сыс-устройств-виртуальных-нетто-lan0.устройство

в моем файле сервисный модуль, а затем моя служба не начнется, пока lan0 был доступен.

+777
user42517 7 окт. 2012 г., 12:03:12

Я нашел установленный DAVFS2 акций, чтобы быть непригодным для использования с моего провайдера хранения, в сочетании со многими/большими файлами. Поэтому я использовал простые команды оболочки завиток для потоковой передачи файлов на удаленный сервер. Нет tmp файлы нужны!

папка Эхо "создание: $(завиток -СК в /etc/davfs2/локон -х пользования mkcol $backup_url/$тег)"
Эхо "загрузка архивы: $($tarcmd | локон -т - в-СК в /etc/davfs2/локон $теге backup_url/$/$сегодня.тар.ХZ)"
Эхо "загрузки молнии SQL дампом: $(туздышпр db_$тег | ХZ | локон -т - в-СК в /etc/davfs2/локон $теге backup_url/$/$сегодня.для SQL.ХZ)"

Мой файл/etc/davfs2/скручиваемость содержит это--User <пользователь>:<пропуск>

+684
Bright Udeh 24 янв. 2015 г., 14:57:23

Я знаю, что мы можем конкатенацию файлы с кошкой файл [файл] [[файл] ...] > зарегистрирован-файл. У меня есть каталог, который содержит много файлов. Я хочу, чтобы функция concat все из них. Я хочу, чтобы функция concat 1000 файлов, независимо от их названия и порядок. Это то, что я пробовала

для меня в /var/АБВ/*.КШМ; сделать "$я" > файл1.КШМ ; ПМ -РФ "$Я";сделано

но чтобы следить за графа другой переменной. Что может быть эффективным методом? Так что я не могу напрямую конкатенацию 1000 файлов и переместить их.

Редактировать Почему 1000, потому что в каталоге собраны сотни тысяч файлов. Так что размер имеет значение файла.Я пробовал это с вашим ответы.

компакт-диск /ВАР/Азбука 
на файл в $(ЛС -п | команда grep -v с / | хвост -1000);сделать кошачьи "$файл" >>"файл/var/АБВГД/xigzag"$ТИК".КШМ" && РМ -РЧ файл"$"; сделано
+670
William Sun 26 янв. 2010 г., 01:57:28

Я бегу с RHEL 5.6. Я тип

$ кронтаб -е

и все что я вижу это

Убил

Я, однако, возможность редактировать файл (допустим, я называю это кронтаб.В) и затем введите

$ crontab-файл кронтаб.в
$ кронтаб -л

и вижу, что он работает, что способ и запись я разместил в кронтаб.в будет работать, когда надо.

Так почему кронтаб -е не работает для меня?

+655
Evelyn oscar 28 июл. 2014 г., 11:03:33

Вот такой короткий ответ, что использует раза после смены выпуск продукции на 11 мест. Чтобы увидеть, что он делает добавить или до финального Баш.

| СЭД с:\(.*\)---\(.*\):функции printf "%-10С " "\1";фолд -з '$(($столбцов - 11))- с <<\\!|СЭД "1!с/^/ /"\н\2\н\!Н:' | Баш 
+642
vsapountzis 17 июн. 2017 г., 20:17:30

Я не знаю, если кто-то еще испытал это, и я не уверен, какую информацию вам нужно (пожалуйста, спросите, если есть что-то), но эту команду постоянно, потому что

/usr/Бен/Python и держит убивают сигнал 11 (сигнала SIGSEGV).

Это известная проблема, я могу сделать все, чтобы это исправить? Я исследовал и другие ошибки, и никто, кажется, чтобы соответствовать этому

[[email protected]имя localhost ~]$ эту команду
Бэкэнд : Ини
Интеграция : правда
Профиль : по умолчанию
Добавление плагинов
Инициализация основных параметров...сделано
в /usr/lib в/Вместо python2.7/сайт-пакеты, окна/СКК/.пы:92: предупреждение: g_object_set_qdata: G_IS_OBJECT утверждение `(объект) не
 самовывоз.LeftPane.pack_start(страница.LeftWidget, Правда, Правда)
в /usr/lib в/Вместо python2.7/сайт-пакеты, окна/СКК/.пы:95: предупреждение: G_IS_OBJECT g_object_set_qdata: утверждение `(объект) не
самовывоз.show_all()
в /usr/lib в/Вместо python2.7/сайт-пакеты/СКК/виджеты.пы:1570: предупреждение: G_IS_OBJECT g_object_set_qdata: утверждение `(объект) не
 самовывоз._table.прикрепить (кнопка, Коль, Коль+1, ряд, ряд+1, 0, xpadding=TableX, ypadding=табли)
Иконки загрузки...
в /usr/lib в/Вместо python2.7/сайт-пакеты/СКК/виджеты.пы:1575: предупреждение: g_object_set_qdata: G_IS_OBJECT утверждение `(объект) не
 самовывоз.show_all ()
Инициализация параметров compiztoolbox...сделано
Ошибка сегментирования (ядро бросила)
+628
Sepren 18 февр. 2019 г., 20:11:04

Давным-давно я написал патч для ядра (до 2.2.древних), где при попытке удалить файл с названием SELFDESTRUCT убил вызывающего процесса. Это охраняется от случайных "РМ-РФ *".

+601
fxytchgk 4 окт. 2014 г., 22:52:34

Если в ls -l в командной строке дает мне разрешения, как

rwsr-х--х

Что означает буква 'S' означает? Единственный источниках я нашел упоминание, что это может быть иногда, но не уточнил.

Что значит '+' вместо '-' означает? Я нашел упоминания о 'расширенное разрешение-но ничего не понятно.

+585
Shamsher 12 авг. 2017 г., 11:19:28

Старая версия (0.6.4?) была портирована на NetBSD, и многие или даже все изменения были приняты в апстрим, но на NetBSD портье, казалось, не продолжать его. Как заявлено, она работает написанный на Python и PyGTK основой. Могут быть минимальные изменения в код на Python, и, возможно, некоторые в CleanerML (главным образом XML), который определяет, какие файлы должны быть очищены.

Если у вас есть какие-либо вопросы, лучше задать в форуме OpenBSD или на форуме она работает.

(Я автор она работает.)

+564
julianz 24 мая 2016 г., 11:21:32

Чтобы ответить на ваш первоначальный вопрос, самый простой способ, чтобы сохранить команду, выполняющуюся после выхода, чтобы запустить его с командой nohup.

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

команды nohup ./программа MyScript &

Более подробную информацию можно найти здесь: https://en.wikipedia.org/wiki/Nohup

В противном случае, как вы указали, экран хороший вариант.

+434
Voltron27 31 янв. 2019 г., 00:06:34

Вы, наверное, добавила себе в ВСП-данных по группе и не войти потом. Чтобы изменить свое членство в группах можно использовать

СГ ВСП-данных

чтобы получить новую оболочку с соответствующими разрешениями.

группы будут возвращать данные из базы данных, а не ваши эффективные права - из группы человек:

Печать группах для каждого пользователя или, если нет Было указано имя пользователя для текущего процесса (который может отличаться, если база данных группах был изменен).

+284
user20150725 5 июл. 2019 г., 23:39:35

У меня есть несколько дисков NTFS с неиспользованных возможностей. Они оставшиеся внешние жесткие диски с истории Windows. У меня есть очень ограниченное число USB-портов на моей машине, и хотите найти дешевый способ объединить эти диски в один логический диск, так как он появляется в ОС. Есть ли какие методы в Linux для реализации этого?

Это как RAID массивы или пролет?

+270
MorningSnoW 7 авг. 2012 г., 07:52:09

Я с использованием OpenVPN включена в качестве сервиса. Он хорошо работает, но когда я вам присваивается новый IP-адрес или потеряем связь, я не могу получить доступ к интернету больше. Тогда мне придется systemctl перезагрузка [email protected] вручную. Как я могу исправить это, так что я не должны войти в систему как root каждый раз и перезапустить службу вручную?

[корень@арка Павел]# кошка файле /etc/openvpn в/ipredator.конф 
клиент
в dev tun0
прото УДП
удаленных ПВ.для OpenVPN.ipredator.ГП 1194
файл resolv-повторить бесконечное
nobind

проверка подлинности пользователя-передать в /etc/openvpn в/ipredator.двиг
двиг-повторить nointeract

Калифорния [встроенные]

ТЛС-клиент
ТЛС-авт [встроенные]
НС-свиду-тип сервера

сообщения keepalive 10 30
шифр AES-256-CBC с
ТЛС-шифр протоколе TLSv1:!АдГ:!Наличии SSLv2:!Нуль:!Экспорт:!Де:!Низкий:!MEDIUM:@STRENGTH
сохраняться-ключ
сохраняться-Тун
комп-лзо
Тун-МТУ 1500
mssfix
passtos
глагол 3

<Калифорния>
-----НАЧНИТЕ СЕРТИФИКАТА-----
###цензура###
-----КОНЕЦ СЕРТИФИКАТ-----
</Калифорния>

<ТЛС-авт>
-----Начните OpenVPN статические ключ В1-----
###цензура###
-----Конец OpenVPN статические ключ В1-----
</ТЛС-авт>
+236
CA Studio 4 февр. 2013 г., 19:16:18

На сегодняшний день формата:

MMDDhhmm[[куб. см]гг][.СС]

Так что ваш пример выше можно прочитать как:

12:49:00 04-26-2005

Кстати, что первая строка задает системное время , а во второй строке устанавливает аппаратные часы. Вижу такое объяснение.

+219
Shimicu 17 июл. 2016 г., 16:54:23

Вы все еще можете использовать одиночные пробелы, как ваш разделитель, вы будете просто иметь несколько столбцов. Увеличить значение вы даете вырезать -Д'- Ф от 2 до 5, или даже 6. Увеличивать количество, пока вы не получите желаемых результатов.

+204
MKBeans 5 дек. 2018 г., 19:27:47

В программе, вызов вызов setrlimit(RLIMIT_CPU, ...). Из оболочки, вызовите команду ulimit -Т 42 (это не стандарт, но поддерживается большинством снарядов (включая bash и KSH) в большинстве Unix вариантов). В этом случае текущий процесс, чтобы быть убитым после того, как он использовал N секунд времени процессора. Ограничение унаследован дочерними процессами. Общая оболочка фразеологизм (параметр ulimit -Т 42; runaway_process) если вы хотите иметь возможность запускать неограниченное процессов, потом из этой же оболочки.

Смотрите также есть ли способ ограничить объем памяти конкретного процесса можно использовать в Unix? . Принцип тот же, ты просто ограничивая свой ресурс.

+166
Pratyush Pratik 28 дек. 2011 г., 02:10:40

Мне нужно что-то вроде этого:
Когда я перенаправить команду по ФИФО в mplayer Эхо "get_property объем" > /tmp/и ФИФО я хочу, чтобы у этой команды выход в output.txtе.г ANS_volume=100.

Я пробовал что-то подобное
mplayer'а -раб -тихо -простоя -входной файл=файл/tmp/FIFO-буфер.МР3 > /tmp/output.txt Но это не работает - файл пуст.
Я видел несколько человек сделали это таким образом, но в моем случае это не работает.

Кто-нибудь знает?

+155
Baha Elhadi 10 нояб. 2015 г., 23:46:05

Проблема теперь решена. Это было связано с authorized_keys файл на удаленном хосте, который гласил

команда="/бин/ЗШ" ИД-ОГА ...

Такие, что по SFTP иsshfs бы попробовать выполнение ЗШ при авторизации/аутентификации. Сняв команду=... немного таких, что каждая строка будет начинаться с Код-ОГА ... решить эту проблему.

+126
Mikhail Korobov 6 февр. 2018 г., 23:48:51

Я проверил это на моем CentOS в 7.3 экземпляр.

[пользователя [email protected] ~]$ РМ -РФ мой-очень-нужную-каталог/
[пользователя [email protected] ~]$ mkdir служат мои-очень-нужную-каталог/ 
[пользователя [email protected] ~]$ стат мой-очень-нужную-каталог/ | грэп "размер"
 Размер: 6 блоков: 0 ИО блока: 4096 каталог
[пользователя [email protected] ~]$ mkdir служат мои-очень-нужную-каталог/00
[пользователя [email protected] ~]$ стат мой-очень-нужную-каталог/ | грэп "размер"
 Размер: 16 блоков: 0 IO блока: 4096 каталог
[пользователя [email protected] ~]$ дата > my-very-own-directory/date.txt 
[пользователя [email protected] ~]$ стат мой-очень-нужную-каталог/ | грэп "размер"
 Размер: 32 блока: 0 IO блока: 4096 каталог
[пользователя [email protected] ~]$ Эхо "контент" > мой-очень-нужную-справочник/контент
[пользователя [email protected] ~]$ стат мой-очень-нужную-каталог/ | грэп "размер"
 Размер: 47 блоков: 0 IO блока: 4096 каталог
  • Первоначальное создание = размер > = 6
  • Добавить запись с 2 байта в наименование длина = размер> составляет 16 (6 + 8 + 2)
  • Добавьте еще одну запись с 4 байта в наименование длина = размер> составляет 32 (16 + 8 + 8)
  • Добавьте еще одну запись с 7 байт в наименование длина = размер> составляет 47 (32 + 8 + 7)

2 вопроса:

  1. Созданный каталог имеет размер 6. Почему?
  2. Каждая новая запись для каталога, будь то файл из поддиректории будет добавить к размеру мой-очень-нужную-каталог. Вопрос, размер увеличивается на 8 + (длина имени файла / имя каталога). Почему 8?
+115
Boakye Maxwell 7 дек. 2013 г., 18:08:13

Я использую Debian 8 Джесси-бэкпортов, как я могу установить пакет libdrm2-Дэв? Я попытался АПТ установить libdrm2-Дев/Джесси-бэкпортов , но я получаю:

Е: не удалось найти пакет libdrm2-Дев

+114
Christine Eastwood 9 мар. 2019 г., 04:18:39

Тестирование операторов и -Зи просто не то же самое.

Оператор говорит, если строка является пустой. Так это правда, что [[ -Z В "$В" ]] будет давать хорошие приближения "переменной, а не установлена", но не идеальный:

  • выражение даст значение true, если это имеет значение пустой строки а не витруальная;

  • включающий скрипт завершится ошибкой, если это не установлено и вариант nounset включена.

С другой стороны, -в а будет именно "переменная а имеет значение", даже в пограничных случаях. Должно быть ясно, что прохождение долларов , а не вк Было бы не правильно, так как он будет расширяться, что, возможно,-отменить переменная до оператора проверить видит его; поэтому он должен быть частью оператор-задача проверять, что переменная, на которую указывает его название, и сказать, будет ли это набор.

+50
sriwanti 4 нояб. 2011 г., 01:20:32

Один подход заключается в использовании читать -РА , а не просто читать. Предполагая, что filestoCompare.txt содержал 2 столбцов с именами файлов в каждой, читать -РА будет читать обе колонки в одно и тоже время и назначить их в массив, compareFile. Этот массив может быть доступен, так что индекс 0 будет первый файл и индекс 1 будет 2-й файл каждый раз через время цикла.

Пример

Скажем, у меня есть этот файл: filestoCompare.txtи содержит следующее:

файл1 файл2
файл file3 файл file4
file5 file6

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

$ пока читала-РА ; у функции printf "%з\т%з\п" ${а[0]} ${а[1]}; сделано < filestoCompare.txt
файл1 файл2
файл file3 файл file4
file5 file6

Если 2 файла действительно отдельные файлы, такие как:

#список1
файл1
файл2
файл file3

#список2
файл file4
file5
file6

Они могут быть соединены вместе с вставить команду вот так:

$ вставить список1 список2 > list1and2

Вот содержимое list1and2:

$ кот list1and2
файл1 файл file4
файл2 file5
файл file3 file6
+38
Manprit Kalsi 6 сент. 2016 г., 22:04:06

Вы в курсе, что регулярные выражения-это неправильный инструмент для разбора HTML, что можно легко создать крайние случаи, чтобы сделать скрипт, не получится, но вы настаиваете, используя неправильный инструмент? Ладно, потом.

Давайте рассмотрим случаи, которые должны быть охвачены: там может быть

  • линии без каких-либо форматированного текста (далее - до),
  • линия предварительной,
  • некоторые предварительно внутри линии,
  • более чем одна предварительная внутри линии,
  • в заранее более одной линии и даже
  • а перед началом в строке, где предыдущие предварительного состава.

Все те случаи являются в этом примере файл:

<х> <х>
<заранее>_ _</предварительно>
_ <заранее>_<заранее> _<х> <х>_
_ <заранее>_<заранее> _<х> <х> _ <заранее>_</предварительно> _
_ <заранее>_<х> <х>_
_и</pre> _
_<Х> <Х>_<Х> <Х>_
_ <заранее>_
_<Х> <Х>_<Х> <Х>_
_и</pre> _ <заранее>
_
<х> <х>_
и </pre>

Чтобы избежать многократного выполнения минификации часть, давайте отделим заранее и незаранее порядный в первом проходе:

СЭД -з-е 'ы/<предварительно>/\н&/г;s_ и</pre>_&\n_g'

(Вы, очевидно, используете GNU СЕПГ, в противном случае :А;Н;$!Ба; не будет работать. Но для GNU СЕПГ, вы можете удалить этот код и используйте опцию вместо.) Теперь этот код добавляет разрыв строки перед каждым <До> и после каждого и</pre>. Труб, что на второй СЭД дает нам гораздо меньше дел для ухода за (и разрывы строк Не навреди вне тега<pre>).

СЭД -е '\_<заранее>.*</предварительно>_b' -е '/<предварительно>/,\_и</pre>_!с/>\ы*</></г'

Первая часть переносится в конец скрипта для линий с одной линией предварительного содержания; вторая часть не минификации манекен для остальных строк, кроме (!) для мульти-линии предварительнойы.

Вместе

СЭД -з-е 'ы/<предварительно>/\н&/г;s_ и</pre>_&n_g\' file.html | СЭД -е '\_<заранее>.*</предварительно>_b' -е '/<предварительно>/,\_и</pre>_!с/>\ы*</></г'

производит

<х><х>

<заранее>_ _</предварительно>

_ 
<заранее>_</предварительно>
_<х><х>_
_ 
<заранее>_</предварительно>
 _<х><х> _ 
<заранее>_</предварительно>
_
_ 
<заранее>_<х> <х>_
_и</pre>
_
_<Х><Х>_<Х><Х>_
_ 
<заранее>_
_<Х> <Х>_<Х> <Х>_
_и</pre>
 _ 
<заранее>
_
<х> <х>_
и </pre>

и – вуаля – пробелы удаляются вне заранее, но нетронутым внутри.

+30
Heladio Cisneros Reyes 31 июл. 2015 г., 03:25:18

Показать вопросы с тегом

$200 cialis coupon 10 mg tadalafil generic 5 mg cialis over the counter at walmart best price for tadalafil 20 mg buy cialis buy cialis generic tadalafil buy cialis online buy cialis online without script buy tadalafil buy tadalafil online canadian cialis online pharmacy canadian pharmacy cialis cheap cialis cheap cialis generic cialis cialis 20 mg best price cialis 20mg cialis 30 day sample cialis 30 day trial coupon cialis and alcohol cialis before and after cialis canada cialis canada pharmacy online cialis cost cialis coupon cialis coupons cialis coupons printable cialis dosage cialis dosage information cialis for daily use cialis for sale cialis free trial cialis free trial voucher for cialis cialis generic cialis generic release date cialis generic tadalafil cialis lowest price cialis online cialis online pharmacy cialis over the counter cialis over the counter at walmart cialis patent expiration date extended cialis picture testimonials cialis pills cialis price cialis prices cialis reviews cialis side effects cialis tadalafil cialis tadalafil 20 mg cialis vs viagra cialis vs viagra which is better cialis without a doctor's prescription cialis without doctor prescription cost of cialis cost of tadalafil generic at walgreens coupon for cialis by manufacturer does cialis lower blood pressure generic cialis generic cialis at walmart generic cialis canada generic cialis canada pharmacy generic cialis from india generic cialis tadalafil generic tadalafil generic tadalafil 20 mg is there a generic for cialis online cialis purchasing cialis on the internet side effects for cialis side effects for tadalafil side effects of cialis tadalafil tadalafil 20 mg tadalafil 20 mg canadian drug stores tadalafil 20mg tadalafil 20mg lowest price tadalafil 5 mg tadalafil 5mg tadalafil cost at walmart tadalafil dosage tadalafil generic tadalafil generic at walgreens tadalafil generic best prices tadalafil online tadalafil price tadalafil side effects tadalafil tablets tadalafil without a doctor's prescription viagra vs cialis viagra vs cialis vs levitra warnings for tadalafil $200 cialis coupon 10 mg tadalafil generic 5 mg cialis over the counter at walmart best price for tadalafil 20 mg buy cialis buy cialis generic tadalafil buy cialis online buy cialis online without script buy tadalafil buy tadalafil online canadian cialis online pharmacy canadian pharmacy cialis cheap cialis cheap cialis generic cialis cialis 20 mg best price cialis 20mg cialis 30 day sample cialis 30 day trial coupon cialis and alcohol cialis before and after cialis canada cialis canada pharmacy online cialis cost cialis coupon cialis coupons cialis coupons printable cialis dosage cialis dosage information cialis for daily use cialis for sale cialis free trial cialis free trial voucher for cialis cialis generic cialis generic release date cialis generic tadalafil cialis lowest price cialis online cialis online pharmacy cialis over the counter cialis over the counter at walmart cialis patent expiration date extended cialis picture testimonials cialis pills cialis price cialis prices cialis reviews cialis side effects cialis tadalafil cialis tadalafil 20 mg cialis vs viagra cialis vs viagra which is better cialis without a doctor's prescription cialis without doctor prescription cost of cialis cost of tadalafil generic at walgreens coupon for cialis by manufacturer does cialis lower blood pressure generic cialis generic cialis at walmart generic cialis canada generic cialis canada pharmacy generic cialis from india generic cialis tadalafil generic tadalafil generic tadalafil 20 mg is there a generic for cialis online cialis purchasing cialis on the internet side effects for cialis side effects for tadalafil side effects of cialis tadalafil tadalafil 20 mg tadalafil 20 mg canadian drug stores tadalafil 20mg tadalafil 20mg lowest price tadalafil 5 mg tadalafil 5mg tadalafil cost at walmart tadalafil dosage tadalafil generic tadalafil generic at walgreens tadalafil generic best prices tadalafil online tadalafil price tadalafil side effects tadalafil tablets tadalafil without a doctor's prescription viagra vs cialis viagra vs cialis vs levitra warnings for tadalafil blue chew viagra scam buy viagra buy viagra online buy viagra online canada pharmacy buy viagra online without script canada pharmacy viagra generic canadian pharcharmy online viagra canadian viagra canadian viagra without a doctor prescription cheap viagra cialis vs viagra cost of viagra female viagra female viagra pills free viagra free viagra samples generic viagra generic viagra 100mg generic viagra available generic viagra canada price generic viagra online pharmacy generic viagra sildenafil citrate generic viagra without a doctor prescription herbal viagra how does viagra work how long does viagra last how much does viagra cost how to take viagra for maximum effect i took viagra mom levitra vs viagra mom gives son viagra natural viagra natural viagra alternatives that work natural viagra substitute nizagara 100 mg vs viagra online viagra online viagra without subscription over the counter viagra real life viagra demonstration revatio vs viagra side effects of viagra sildenafil sildenafil 100mg sildenafil 20 mg sildenafil 20 mg tablet sildenafil 20 mg tablet vs viagra sildenafil citrate sildenafil citrate 100mg sildenafil citrate 20 mg sildenafil coupons sildenafil dosage sildenafil dosage recommendations sildenafil generic sildenafil side effects sophia viagra sophia viagra bikini sophia viagra hot stendra vs viagra stepmom gives son viagra viagra viagra 100mg viagra before after photo actual viagra boner viagra canada online pharmacy viagra coupon viagra coupons viagra coupons from pfizer viagra dosage viagra dosage recommendations viagra erection viagra erection after ejaculation viagra for men viagra for sale viagra for sale on amazon viagra for women viagra generic viagra generic availability viagra generic release date viagra in action viagra on line viagra online viagra online canada pharmacy viagra online pharmacy viagra patent expiration viagra pill viagra pills viagra porn viagra prank viagra prices viagra samples viagra sex viagra side effects viagra substitute viagra vs cialis viagra without a doctor prescription viagra without doctor prescription what is viagra when will generic viagra be available blue chew viagra scam buy viagra buy viagra online buy viagra online canada pharmacy buy viagra online without script canada pharmacy viagra generic canadian pharcharmy online viagra canadian viagra canadian viagra without a doctor prescription cheap viagra cialis vs viagra cost of viagra female viagra female viagra pills free viagra free viagra samples generic viagra generic viagra 100mg generic viagra available generic viagra canada price generic viagra online pharmacy generic viagra sildenafil citrate generic viagra without a doctor prescription herbal viagra how does viagra work how long does viagra last how much does viagra cost how to take viagra for maximum effect i took viagra mom levitra vs viagra mom gives son viagra natural viagra natural viagra alternatives that work natural viagra substitute nizagara 100 mg vs viagra online viagra online viagra without subscription over the counter viagra real life viagra demonstration revatio vs viagra side effects of viagra sildenafil sildenafil 100mg sildenafil 20 mg sildenafil 20 mg tablet sildenafil 20 mg tablet vs viagra sildenafil citrate sildenafil citrate 100mg sildenafil citrate 20 mg sildenafil coupons sildenafil dosage sildenafil dosage recommendations sildenafil generic sildenafil side effects sophia viagra sophia viagra bikini sophia viagra hot stendra vs viagra stepmom gives son viagra viagra viagra 100mg viagra before after photo actual viagra boner viagra canada online pharmacy viagra coupon viagra coupons viagra coupons from pfizer viagra dosage viagra dosage recommendations viagra erection viagra erection after ejaculation viagra for men viagra for sale viagra for sale on amazon viagra for women viagra generic viagra generic availability viagra generic release date viagra in action viagra on line viagra online viagra online canada pharmacy viagra online pharmacy viagra patent expiration viagra pill viagra pills viagra porn viagra prank viagra prices viagra samples viagra sex viagra side effects viagra substitute viagra vs cialis viagra without a doctor prescription viagra without doctor prescription what is viagra when will generic viagra be available $200 cialis coupon 10 mg tadalafil generic 5 mg cialis over the counter at walmart best price for tadalafil 20 mg buy cialis buy cialis generic tadalafil buy cialis online buy cialis online without script buy tadalafil buy tadalafil online canadian cialis online pharmacy canadian pharmacy cialis cheap cialis cheap cialis generic cialis cialis 20 mg best price cialis 20mg cialis 30 day sample cialis 30 day trial coupon cialis and alcohol cialis before and after cialis canada cialis canada pharmacy online cialis cost cialis coupon cialis coupons cialis coupons printable cialis dosage cialis dosage information cialis for daily use cialis for sale cialis free trial cialis free trial voucher for cialis cialis generic cialis generic release date cialis generic tadalafil cialis lowest price cialis online cialis online pharmacy cialis over the counter cialis over the counter at walmart cialis patent expiration date extended cialis picture testimonials cialis pills cialis price cialis prices cialis reviews cialis side effects cialis tadalafil cialis tadalafil 20 mg cialis vs viagra cialis vs viagra which is better cialis without a doctor's prescription cialis without doctor prescription cost of cialis cost of tadalafil generic at walgreens coupon for cialis by manufacturer does cialis lower blood pressure generic cialis generic cialis at walmart generic cialis canada generic cialis canada pharmacy generic cialis from india generic cialis tadalafil generic tadalafil generic tadalafil 20 mg is there a generic for cialis online cialis purchasing cialis on the internet side effects for cialis side effects for tadalafil side effects of cialis tadalafil tadalafil 20 mg tadalafil 20 mg canadian drug stores tadalafil 20mg tadalafil 20mg lowest price tadalafil 5 mg tadalafil 5mg tadalafil cost at walmart tadalafil dosage tadalafil generic tadalafil generic at walgreens tadalafil generic best prices tadalafil online tadalafil price tadalafil side effects tadalafil tablets tadalafil without a doctor's prescription viagra vs cialis viagra vs cialis vs levitra warnings for tadalafil