我有以下字符串:
“-所有者-日期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