我在shell脚本中有一个变量,如下所示。每一行用换行符分隔。
var="This is the first line
This is the second line
This is the third line
/home/usr/new/foo.txt
This is the forth line
This is the fifth line"
现在我需要读取包含.txt
的行并将其存储在另一个变量中。
another_var=/home/usr/new/foo.txt
答案 0 :(得分:2)
这更通用。
#!/bin/bash
var="This is the first line
This is the second line
This is the third line
/home/usr/new/foo.txt
This is the forth line
This is the fifth line"
dog="$( echo "$var" | grep txt )"
echo $dog
我使用了bash,但我相信这也适用于ksh。
我没有注意到Zsigmond已经提出过这个建议。
答案 1 :(得分:1)
在mapfile
的最新版本中,您应该有.txt
命令可用于解析多行字符串。我们将字符串解析为数组并匹配包含glob字符串mapfile -t new_array <<< "$var"
for element in "${new_array[@]}"; do
if [[ $element == *".txt"* ]]; then
new_var="$element"
break
fi
done
的行并将其打印为
setTimeout(() => {
this.setState(getNextState());
}, 5000);