我想插入'.'
在一个给定的输入字符串的每一个字符,然后之间使用它作为参数在一管
我做下列之一:
tail -f file.txt | grep -a 'R.e.s.u.l.t.'
tail -f file.txt | awk '/R.e.s.u.l.t./'
如何可以只键入'Result'
和它传递作为正则表达式参数grep
接收从由创建的缓冲器输入时tail -f
通过使用附加bash
默认功能
我想插入'.'
在一个给定的输入字符串的每一个字符,然后之间使用它作为参数在一管
我做下列之一:
tail -f file.txt | grep -a 'R.e.s.u.l.t.'
tail -f file.txt | awk '/R.e.s.u.l.t./'
如何可以只键入'Result'
和它传递作为正则表达式参数grep
接收从由创建的缓冲器输入时tail -f
通过使用附加bash
默认功能
tail -f file.txt | grep -a -e "$(echo Result | sed 's/./&./g')"
这呼应了词Result
作为输入sed
(考虑下面的字符串代替),其替换本身每个字符后跟一个.
,然后输出被用作用于搜索表达式grep
。 该-e
如果你想搜索可以保护你免受事故-argument
与点,例如。 如果字符串是一个变量,那么你会使用双引号解决这个问题,太:
result="Several Words"
tail -f file.txt | grep -a -e "$(echo "$result" | sed 's/./&./g')"
awk的版本:
tail -f file.txt |
awk -v word="Result" '
BEGIN {gsub(/./, "&.", word); sub(/\.$/, "", word)}
$0 ~ word
'