我尝试使用awk
从字符串中读取字符串。
我的字符串:
str = /xx/{hello}/xxx/xx{there}/xxx [again]
我想提取hello
和again
。
我已经成功地使用了第一件事:
echo $str | awk -F[{}] '{print $2}'
但是我试图对[]
之间的字符串做同样的事情,我不能。还尝试了awk -F[[]] '{print $2}'
和awk -F[/[/]] '{print $2}'
任何帮助将不胜感激。 感谢
答案 0 :(得分:2)
关注awk
可以帮助您。
echo "$str" | awk -F"[]}{[]" '{print $2,$6}'
输出如下。
hello again
此外,您应该为str
变量值分配空格,如下所示。
str="/xx/{hello}/xxx/xx{there}/xxx [again]"
答案 1 :(得分:1)
您可以使用以下awk
程序:
awk '!(NR%2)' RS='[][{}]' <<< "${str}"
在做什么?
基本上,我们使用{
,}
,[
或]
作为记录分隔符。这意味着awk会看到以下记录的序列:
/xx/
hello
/xxx/xx
there
/xxx
again
感兴趣的条款始终显示在偶数记录中。在这种情况下,记录2,4和6. awk '!(NR%2)'
打印具有偶数索引的记录。