Разность 2 файла, игнорирующие строки между и [

Насколько я понимаю Ваш вопрос, Вы просите перенаправление портов от апача в порте 80 Вашему коту appserver достигающий 8 080 портов, одновременно имеете свою апачскую маску порт в http заголовках и сделали пользователей, не должны явно вводить номер порта в URL просмотра. Этому нужно Приложение, образующее мост между Apache и Вашим сервером приложений кота, работающим на том же хосте. Предположение, что Вы собираетесь разместить апачский virtualhost на хосте, необходимо настроить dns к точечному приложению CNAME к хосту.

Можно сделать это во многих отношениях. Один из методов без определенного порядка (но может быть с точки зрения легкости установки относительно),

  • mod_rewrite и mod_proxy апачский модуль. Легкий установить. Только включает httpd конфигурацию. Просто действия как прокси переписывают для трафика HTTP в порте 80 предназначенных для виртуального хоста кота http сервер. До сих пор я нахожу, что это круто и просто с точки зрения администрирования. Я позволю developer/app-manager ответственному за установку кота заботиться об обновлении файла server.xml.

    Ссылка: пример http://tomcat.apache.org/tomcat-5.5-doc/proxy-howto.html:

    
    ServerName yourapp.yourdomain.com
    ServerAlias yourapp.*        
    ProxyRequests Off
    ProxyPreserveHost On     
    
    Order deny,allow
    Allow from all
         
    ProxyPass /webapp http://localhost:8080/webapp
    ProxyPassReverse /webapp http://localhost:8080/webapp    
    
      Order allow,deny
      Allow from all
            
    
    
  • Выполнение JSP Через Apache с помощью mod_jk2 модуль. Носитель трудно. Вовлекает сложную установку параметра в httpd конфигурацию, полезную, если тот же виртуальный хост должен выполнить другие сценарии, такие как php/perl/cgi кроме передачи трафика к серверу Tomcat. В этих ссылках существует превосходное ПРАКТИЧЕСКОЕ РУКОВОДСТВО.

    Ссылка:

    http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html

    http://people.apache.org/~mturk/docs/article/ftwai.html

    http://www.mulesoft.com/apache-tomcat-mod-jk-connector-configuration

  • Выполненный JSP через Apache mod_proxy_ajp модуль: Ее подобное вышеупомянутому подходу, но этот модуль выравнивает с использованием ajp связь протокола с котом вместо http ради непротиворечивости.

    Ссылки:

    https://confluence.sakaiproject.org/display / ~ steve.swinsburg/Fronting+Tomcat+with+Apache+via+mod_proxy_ajp

  • Решите это на сетевом уровне хоста. Использовать iptables для перенаправления всего входящего трафика в порте 80 связывают для портирования 8080 по умолчанию. Включает понимание и управление iptables настройками. Одна установка времени, но трудный поддержать. Может стать проблематичным, если необходимо разместить другой Apache virtualhosts на той же машине.

Пример:

iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -t nat -A OUTPUT -d localhost -p tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A OUTPUT -d $(/bin/hostname) -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -t nat -A PREROUTING -d $(/bin/hostname) -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables-save

2
19.04.2013, 01:24
3 ответа

Я использовал бы замены процесса здесь:

diff <(sed 's/@[^[]*/@/' old) <(sed 's/@[^[]*/@/' new)
2
27.01.2020, 21:57
  • 1
    Привет, Это действительно помогло, но половина путем вывода: у Меня есть occurenece тех символов 2 раза, таким образом, в первом месте они были удалены, но поймали различие во втором –  Pooja Upadhyaya 22.04.2013, 08:31
  • 2
    com.ibm.dataexplorer.bigindex.search.model.Field@ [fieldName=com.ibm.dataexplor er.bigindex.search.model.FieldName@4cdc4cdc [fieldName=twitterMsg] com.ibm.dataexplorer.bigindex.search.model.Field@ [fieldName=com.ibm.dataexplor er.bigindex.search.model.FieldName@79ff79ff [fieldName=twitterMsg], fieldValues = [c om.ibm.dataexplorer.bigindex.internal.search.model.ModifiableFieldValue@4ac84ac8 [fieldValue=Tweet1]]] –  Pooja Upadhyaya 22.04.2013, 08:32
  • 3
    Помогите мне в удалении второго возникновения также –  Pooja Upadhyaya 22.04.2013, 08:33
  • 4
    Необходимо ли просто добавить флаг "g" к sed "s///" команды? –  glenn jackman 22.04.2013, 15:38

Отфильтруйте файлы данных - затем выполняют разность-:

sed 's/\@.*\[/@[/' file1 > file1.filt
sed 's/\@.*\[/@[/' file2 > file2.filt
diff file1.filt file2.filt

Альтернатива должна использовать diff имеет опцию-I. Любые строки, которые соответствуют шаблону, проигнорированы в различном сравнении. Выберите шаблон, который исключительно выберет строки, которые не должны быть сравнены. например.

diff -I 'dataexplorer.bigindex' file1 file2

1
27.01.2020, 21:57
  • 1
    у меня есть 2 файла, содержащие часть как com.ibm.dataexplorer.bigindex.search.model.Field@d6b0d6b [fieldName=com.ibm.dataexplorer.bigindex.search.model. FieldName@d700d70[fieldName=twitterMsg] И я хотим сделать разность 2 файлов, и это должно проигнорировать символы между и [потому что они изменятся на каждом новом выполнении, и следовательно моя разность не передаст –  Pooja Upadhyaya 18.04.2013, 19:33
  • 2
    делает diff -I ... помощь? –  suspectus 18.04.2013, 20:28
  • 3
    Привет я пытался использовать sed, но я получил этот sed: выражение № 1-e, символ 10: незавершенная' команда объясните, что whta является причиной, Мое выражение было $rc = systemTestSetup:: выполнитесь ("sed 's/\.* [/[/' $tmpDir/data/actual_out.tmp> $tmpDir/data/actual_out"); –  Pooja Upadhyaya 18.04.2013, 20:45
  • 4
    I? как это могло использоваться? –  Pooja Upadhyaya 18.04.2013, 20:49
  • 5
    , помогите мне в отладке этой ошибки "sed: выражение № 1-e, символ 10: незавершенная' команда" –  Pooja Upadhyaya 18.04.2013, 20:55

Я предполагаю, что Вы используете Bash.

если v="model.Field@d6b0d6b[fieldName" затем можно сделать следующее:

# Extract the right side of "$v"
r="${v#*[}"
# Extract the left side of "$v"
l="${v%@*}"

# Combine
new_v="$l@[$r"; new_v1="$l$r"

Можно использовать "$new_v", или "$new_v1" зависит от того, хотите ли Вы и [или нет.


Как г-н Wijsman прокомментировал, мой ответ не отвечает на вопрос. Корректный, я не обращал много внимания на заголовок. Давайте зафиксируем его и перенесем код выше со следующей функцией для печати данных единственного файла как требуется

pf()
{
    while read -r line; do
        # This is a bit fancy but does the same thing as the code above.
        printf '%s\n' "${line%@*}${line#*[}"
    done < "$1"
}

Теперь, мы можем diff эти два файла при помощи следующей команды:

diff <(pf file1.txt) <(pf file2.txt)

Вот Демонстрационный вывод

rany$ cat file1.txt

model.Field1@__A__[fieldName
model.FieldIAMDIFFERENT@__B__[fieldName
model.Field1@__C__[fieldName

rany$ cat file2.txt

model.Field1@__C__[fieldName
model.Field1@__D__[fieldName
model.Field1@__E__[fieldName

rany$ diff <(pf file1.txt) <(pf file2.txt)

2c2
< model.FieldIAMDIFFERENTfieldName
---
> model.Field1fieldName
rany$

Как Вы видите, то, что строки отличаются между и [игнорируется, и единственная строка, которая отличается между файлами, является этим:

модель. FieldIAMDIFFERENTfieldName

Я сожалею о том, что не было обращено особое внимание на Ваш заголовок как часть вопроса.

2
27.01.2020, 21:57
  • 1
    Это не отвечает на вопрос. –  Tamara Wijsman 18.04.2013, 23:56

Теги

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

  • 0
    Искать последний / и печатать следующие 2 символа и всю строку 29.01.2020
    У меня есть файл abc.log abc01 /opt/app/ggs/ggs/12.1.2.1.10/dirdat/fo027146 abc02 /opt/приложение/ggs/ggs/12.1.2.1.10/dirdat/fb027146 abc03 /opt/app/ggs/ggs/12.1.2.1.10/dirdat/fc027146 I ...
  • 1
    Сброс USB с использованием вывода lsusb 02.07.2021
    У меня есть USB-устройство, которое я хочу сбросить автоматически. В настоящее время существует два USB-устройства, но иногда их может быть больше. [user1@gs10 devt]$ lsusb Шина 002 Устройство 001 :ID 1d6b :0003 Linux Foundation...
  • 0
    Как переместить первую строку в конец файла? 19.08.2016
    Как удалить строку после первой строки, содержащую шаблон invHn3ion? а потом переместить первую строку в конец файла? Где я могу узнать все эти выражения?