Заменить строки, соответствующие шаблону, строками из другого файла в порядке

cat / proc / filesystems должен помочь. ..

4
15.10.2016, 13:32
1 ответ

Легко можно сделать с awk

awk '
    /^!!/{                    #for line stared with `!!`
        getline <"file2.txt"  #read 1 line from outer file into $0 
    }
    1                         #alias for `print $0`
    ' file1.txt

Другая версия

awk '
    NR == FNR{         #for lines in first file
        S[NR] = $0     #put line in array `S` with row number as index 
        next           #starts script from the beginning
    }
    /^!!/{             #for line stared with `!!`
        $0=S[++count]  #replace line by corresponded array element
    }
    1                  #alias for `print $0`
    ' file2.txt file1.txt
10
27.01.2020, 20:47

Теги

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