了解有关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
答案 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