Cómo encontrar coincidencias y valores correspondientes en el script de Shell

Cómo encontrar coincidencias y valores correspondientes en el script de Shell

Tengo la siguiente cadena:

"-propietario -fecha 2017-10-10 -prioridad 20 -valor xyz -ubicacióndesalida "

quiero ignorar-prioridad 20y-ubicación de salidaopciones al analizar estos parámetros en el script bash. ¿Algún truco para hacer esto usando sed/awk/grep?

nota1: los parámetros no tienen un orden específico. nota2: -prioridad puede ser un número entre 0 y 100 nota3: -outputLocation . dir_name cambia siempre con cada ejecución

Respuesta1

Usandoargparsepuedes analizar fácilmente los 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 de ahí, es literalmente trivial ignorar algunos de los parámetros.

Respuesta2

Método 1

Aquí estoy reemplazando el contenido "-prioridad 20 -ubicación de salida" con un espacio en blanco.

#!/bin/bash
for i in -priority 20 -outputLocation
do
  sed -i "s/"$i"//g" /tmp/l.txt
done

Método 2

Aquí estoy anulando los valores.

awk '{$5="";$6="";$NF="";print $0}' l.txt

información relacionada