многострочный ввод из файла, команда awk - PullRequest
0 голосов
/ 17 мая 2019

несколько входных значений из файла

у меня есть эта команда

   $ awk ' $0=="string_start" { inSection=1 } inSection; $0=="string_end" { nSection=0 }' input_file.txt >> output_file.txt

, если возможно, как я могу иметь несколько входных значений из списка в string_start_file.txt добавить всевывод в output_file.txt .

Пример string_start_file.txt

string_start_1
string_start_2
string_start_3
string_start_4
string_start_5
string_start_6
string_start_7
  • Обратите внимание, что string_end всегда одинаков.

так что это своего рода доза это

       $ awk ' $0=="string_start1" { inSection=1 } inSection; $0=="string_end" { nSection=0 }' input_file.txt >> output_file.txt
   $ awk ' $0=="string_start2" { inSection=1 } inSection; $0=="string_end" { nSection=0 }' input_file.txt >> output_file.txt
   $ awk ' $0=="string_start3" { inSection=1 } inSection; $0=="string_end" { nSection=0 }' input_file.txt >> output_file.txt
   $ awk ' $0=="string_start4" { inSection=1 } inSection; $0=="string_end" { nSection=0 }' input_file.txt >> output_file.txt

спасибо;)

1 Ответ

0 голосов
/ 17 мая 2019

как мне иметь несколько входных значений из списка в string_start_file.txt

Вы можете прочитать начальные строки в блоке BEGIN, сделать каждую строку массивом index , а затем просто используйте оператор in, чтобы проверить его:

awk 'BEGIN {while (getline <"string_start_file.txt" > 0) starts[$0]=1}
     $0 in starts {inSection=1} inSection; $0=="string_end" {inSection=0}' input_file.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...