如何在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

方法二

在这里我取消了这些值。

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

相关内容