Como encontrar a correspondência e o valor correspondente no script Shell

Como encontrar a correspondência e o valor correspondente no script Shell

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

Usandoargparsevocê 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

informação relacionada