Удалить часть Строка с SED?

awk '
    {
        getline a <file2
        if(prn)
            print a
        else
            print
    }
    /formant \[1\]/{
        prn = 1
    }
    /bandwidth/{
        prn = 0
    }
    ' file1

Для разного количества формант в файлах file1 и file2, чтобы получить только частоту:

awk '
    BEGIN{
        pattern = "formant \\[1\\]"
    }
    prn{
        prn = 0
        while($0 !~ pattern)
            getline <file2
        getline <file2
    }
    $0 ~ pattern{
        prn = 1
    }
    1
    ' file1
1
10.08.2018, 06:57
3 ответа

Использование sed

sed -i -e 's/\*.*//g' -e 's/ IP//g' -e '\$^Syntax.*$d' File*

Это тоже должно работать:

awk '/Date/{print $0} /^Product|^Soft/{print $1" "$2" "$3} /^$/' File*
3
27.01.2020, 23:12

Вот один из способов awk. Переменная NRпредставляет номер записи; просто распечатайте его, если он первый. awkсчитает поля от одного, поэтому вы говорите, что после этого вам нужны только первые три:

awk 'NR==1 {print;next};{print $1,$2,$3}' 
3
27.01.2020, 23:12

Использование sedдля удаления последнего слова и любых пробелов или знаков табуляции перед ним в строках 5 и далее:

$ sed -E '5,$s/[[:blank:]]*[^[:blank:]]+$//' file
Date Time: June 22 12:40:00

Product User Host IP

Software User User
Software1 User User

5,$обращается к каждой строке, начиная со строки 5 и далее, и замена, которая действует в этих строках, удалит любое количество пробелов или табуляции, за которыми следует что-то, что состоит из не -пробелов и не -табуляции. в конце строки.

1
27.01.2020, 23:12

Теги

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