我有一个包含以下内容的文件:
"def{word} def{word}"
"def{worad} def{worads}"
我希望报告出现两次的大括号内的单词。 在这种情况下,输出应该只是“word”。 我所拥有的是:
#!/bin/bash
arr=(
"def{word} def{word}"
"def{worad} def{worads}"
)
for i in "${arr[@]}"; do
[[ $i =~ def\{([a-z]+)\}.*def\{\1\} ]] || continue
echo ${BASH_REMATCH[1]}
done
例如,我试图将第一个单词与\1(反向引用)匹配。然而,输出为空。我该怎么做?
sed -n s/def{\([^}]*\)} *def{\1}/\1/p' file
- tripleee