쉘 스크립트에서 일치하는 값과 해당 값을 찾는 방법 [닫기]

쉘 스크립트에서 일치하는 값과 해당 값을 찾는 방법 [닫기]

다음 문자열이 있습니다.

"-소유자-날짜2017-10-10-Priority20-Valuexyz-OutputPosition"

무시하고 싶다-우선순위 20그리고- 출력 위치Bash 스크립트에서 이 매개변수를 구문 분석할 때의 옵션입니다. sed/awk/grep을 사용하여 이를 수행하기 위한 팁이 있습니까?

참고 1: 매개변수는 특별한 순서가 없습니다. 참고2: -우선순위는 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

관련 정보