我正在尝试隔离以enp
开头的第一个接口示例:
foo = "bar0s0 foo0s8 enp0s0"
startword = "enp"
结果:
$foo = enp0s0
答案 0 :(得分:0)
WORDS="bar0s0 foo0s8 enp0s0"
START="enp"
for w in $WORDS; do
case $w in
${START}*)
echo $w
break # break out of the for loop for first instance
;;
esac
done
答案 1 :(得分:0)
var timer:Timer?
override func viewDidLoad() {
super.viewDidLoad()
timer = Timer.scheduledTimer(timeInterval: 1,
target: self,
selector: #selector(timerFired),
userInfo: nil,
repeats: true)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
if let timer = timer {
timer.invalidate()
}
}
答案 2 :(得分:0)
这是一个使用awk的解决方案,根据您的需要进行修改:
echo "bar0s0 foo0s8 enp888 enp0s0" | awk ' { for(i = 1; i <= NF; i++) if($i ~ "enp") { print $i; break;} } '
答案 3 :(得分:0)
您将问题标记为bash,因此我将提供简单,便携的解决方案。
由于您没有为您的问题提供上下文,因此很难确定最佳方法可能是什么,但在大多数情况下,这应该可以解决问题。
bash>bash --version
GNU bash, version 3.2.52(2)-release (i586-suse-linux-gnu)
Copyright (C) 2007 Free Software Foundation, Inc.
bash>foo="bar0s0 foo0s8 enp0s0 random word123"
bash>startword="enp"
bash>index=$(expr index "$foo" $startword)
bash>echo ${foo:$(($index -1)):6}
enp0s0
有几点需要注意:
此方法使用子字符串提取,如果您想阅读它,请查看http://www.tldp.org/LDP/abs/html/string-manipulation.html