Как удалить всю запись, содержащую шаблон?

Я сделал рабочий скрипт. Поделитесь им, если кто-то найдет это полезным. Ответ @nohillside помог мне.

#!/bin/bash

count=1

while true
do
    url="https://www.website.tld/page.php?var1=${count}&var2=static"

    text=`curl -s "$url"`

    if echo "$text" | grep -q "ERROR"
    then
        break
    elif echo "$text" | grep -q "XYZ"
    then
        echo "$url" >> matches.txt
    fi

    ((count++))

done
0
08.04.2020, 09:32
3 ответа

Если я вас правильно понял, попробуйте вот это

for f in *.sp; do 
  sed "s/[^ ]*${f%.*}[^ ]*//" "$f" | column -t
done

Выход:

C1  out1    3.9e-12
C2  foo     1.2e-14
C3  foo2    8.3e-14
0
28.04.2021, 23:18

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

Если это так, вы могли бы сделать поле -мудрым grepвperl:

$ cat in1.sp 
 C1    in1    out1        3.9e-12
 C2    foo    st1/in1     1.2e-14
 C3    foo2   in1         8.3e-14

, затем

$ perl -alpe '$_ = join "\t", grep { $_ !~ (split(/\./,$ARGV))[0] } @F' in1.sp 
C1  out1  3.9e-12
C2  foo   1.2e-14
C3  foo2  8.3e-14
0
28.04.2021, 23:18

Вы можете использовать awkдля выбора нужных столбцов

$ awk '{print $1 "\t" $2 "\t" $4}' in1.sp 
C1  in1 3.9e-12
C2  foo 1.2e-14
C3  foo2    8.3e-14

Это будет работать до тех пор, пока поля внутри столбцов гарантированно -не пусты и никогда не содержат пробелов.

0
28.04.2021, 23:18

Теги

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