如何在Shell腳本中找到符合和對應的值

如何在Shell腳本中找到符合和對應的值

我有以下字串:

“-所有者-日期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

相關內容