Я сделал рабочий скрипт. Поделитесь им, если кто-то найдет это полезным. Ответ @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
Если я вас правильно понял, попробуйте вот это
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
Если я вас правильно понял, вы хотите удалить любое значение поля, которое содержит совпадение с именем файла (минус его расширение ).
Если это так, вы могли бы сделать поле -мудрым 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
Вы можете использовать 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
Это будет работать до тех пор, пока поля внутри столбцов гарантированно -не пусты и никогда не содержат пробелов.