
Eu tenho a string abaixo:
"-proprietário -data 10/10/2017 -prioridade 20 -valor xyz -outputLocation "
eu quero ignorar-prioridade 20e-outputLocationopções ao analisar esses parâmetros no script bash. algum truque para fazer isso usando sed/awk/grep ?
nota1: os parâmetros não possuem ordem específica. note2: -priority pode ser um número entre 0-100 note3: -outputLocation . dir_name muda sempre a cada execução
Responder1
Usandoargparse
você pode analisar facilmente os parâmetros:
parser = argparse.ArgumentParser()
parser.add_argument('-owner', action='store_true')
parser.add_argument('-date')
args = parser.parse_args()
print(args.accumulate(args.integers))
A partir daí, é literalmente trivial ignorar alguns dos parâmetros.
Responder2
Método 1
Aqui estou substituindo o conteúdo “-priority 20 -outputLocation” por espaço em branco.
#!/bin/bash
for i in -priority 20 -outputLocation
do
sed -i "s/"$i"//g" /tmp/l.txt
done
Método 2
Aqui estou anulando os valores.
awk '{$5="";$6="";$NF="";print $0}' l.txt