bash читать разделенный файл после строки - PullRequest
1 голос
/ 04 апреля 2020

Я пытаюсь создать один сценарий оболочки для разделения текстовых файлов после одного указания c STRING.

Line of text 
Line of text 
STRING
Line of text 
Line of text 

Я делаю вид, что у меня есть 2 файла, один от начала до STRING, а другой с STRING до конца содержание.

Спасибо за любую помощь

1 Ответ

2 голосов
/ 04 апреля 2020

С помощью sed:

sed -n '1,/STRING/p' inputfile > file1
sed -n '/STRING/,$p' inputfile > file2

С помощью awk:

awk '/STRING/{flag=1;print>"file1"}
    flag {print>"file2";next}
    {print>"file1"}
' inputfile

Если вам нужна строка, содержащая точное слово STRING и ничего более, просто замените STRING для ^STRING$ в приведенных выше сценариях.


Если вы не хотите, чтобы STRING присутствовал в первом файле,

awk '/STRING/{flag=1}
    flag {print>"file2";next}
    {print>"file1"}
' inputfile
...