Как найти совпадение и соответствующее значение в скрипте Shell

Как найти совпадение и соответствующее значение в скрипте Shell

У меня есть строка ниже:

"-владелец -дата 2017-10-10 -приоритет 20 -значение xyz -выводМестоположение"

Я хочу игнорировать-приоритет 20и-outputLocationпараметры при разборе этих параметров в скрипте bash. Есть ли какой-нибудь трюк, чтобы сделать это с помощью sed/awk/grep?

примечание 1: параметры не имеют определенного порядка. примечание 2: -priority может быть числом от 0 до 100 примечание 3: -outputLocation . dir_name всегда меняется при каждом запуске

решение1

С использованиемargparseВы можете легко проанализировать параметры:

parser = argparse.ArgumentParser()
parser.add_argument('-owner', action='store_true')
parser.add_argument('-date')

args = parser.parse_args()
print(args.accumulate(args.integers))

А вот дальше игнорировать некоторые параметры становится буквально тривиально.

решение2

Метод 1

Здесь я заменяю содержимое «-priority 20 -outputLocation» пустым пространством.

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

Метод 2

Здесь я обнуляю ценности.

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

Связанный контент