有没有一种方法可以将用户输入变量中的特殊字符视为文字?

时间:2019-01-12 02:06:01

标签: awk

了解有关awk的更多信息,但是我无法找出一种方法来将awk〜模式中的特殊字符视为文字,例如,我有一个包含txt文件的文件

C++ for dummies:test1:test2
java for dummies:test1:test2
bash for dummies:test1:test2

说我希望用户能够根据第一个字段搜索匹配的模式,例如,输出的虚拟对象中的用户类型

C++ for dummies:test1:test2
java for dummies:test1:test2
bash for dummies:test1:test2

或者如果用户键入整个字符串C ++作为虚拟变量,输出将为

C++ for dummies:test1:test2

实际输出为空白,因为它包含特殊字符

但仅键入C ++即可产生输出

C++ for dummies:test1:test2 

反斜杠会有所帮助,但这是通过用户输入表示的,这意味着我不知道输入会是什么样。

这是我编写的代码

read titleInput
awk -v title="$titleInput" -F: '$1~title {print $0}' textF.txt

1 个答案:

答案 0 :(得分:1)

使用~函数而不是将index用于正则表达式匹配,该函数将其搜索参数视为纯字符串而不是RE:

$ echo 'C++ for dummies:test1:test2' | awk  -F: -v title="C++ for dummies" 'index($1, title)'
C++ for dummies:test1:test2