
我有以下字串:
“-所有者-日期2017-10-10-優先權20-值xyz-輸出位置”
我想忽略-優先權20和-輸出位置在 bash 腳本中解析此參數時的選項。使用 sed/awk/grep 執行此操作有什麼技巧嗎?
注意1:參數沒有特定的順序。 note2: -priority 可以是 0-100 之間的數字 note3: -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
方法一
這裡我將內容「-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