匹配带有开始和结束字符的字符串

时间:2017-08-13 10:41:47

标签: bash awk

我刚刚开始学习awk编程,我仍然习惯于bash终端。如果我要写一个表达式以匹配开始 de 结束 ed 的字符串,我想知道它是怎么回事?

想到类似的东西:

 echo -e "deed\ndeath\ndone\ndeindustrialized" |awk '/^de.ed$/'

其中我匹配起始并匹配awk命令中的结尾但它没有打印出任何东西。我会感激一些帮助。

它应该产生:

deed
deindustrialized

我今天刚开始,想知道。

2 个答案:

答案 0 :(得分:2)

awk部分应该是:

... | awk '/^de.*ed$/'
deed
deindustrialized

.匹配任何字符,而*表示前面的项目将匹配零次或多次。

答案 1 :(得分:1)

尝试使用awk:

echo -e "deed\ndeath\ndone\ndeindustrialized"  | awk 'NR==1;END{print}'

以下是同样的解释。

awk '
NR==1;      ###Checking the NR(Number of line) value is 1, if yes then print the current line(awk works on method of pattern/action, if a condition is TRUE then do actions, in case of NO action do default action which is print of current line).
END{print}' ###In END section now, so it will print the last line of Input_file.