![在命令行中使用 awk 时无法使用制表符补全](https://linux22.com/image/96007/%E5%9C%A8%E5%91%BD%E4%BB%A4%E8%A1%8C%E4%B8%AD%E4%BD%BF%E7%94%A8%20awk%20%E6%97%B6%E6%97%A0%E6%B3%95%E4%BD%BF%E7%94%A8%E5%88%B6%E8%A1%A8%E7%AC%A6%E8%A1%A5%E5%85%A8.png)
我正在尝试使用 awk 分隔制表符分隔的文件。
awk -F'\t' -v OFS="\t" '{if ($5=="Pattern") print $0}' My_file
我遇到了问题,我不能不使用选项卡完成选项“-v OFS="\t"”。每当命令包含“-v OFS="\t"“(无论是唯一的选项还是与其他选项组合),我无法使用制表符完成文件名。
当我使用时:
awk -F'\t' '{if ($5=="Pattern") print $0}' My_file
选项卡完成工作正常。
有时当我使用以下命令时:
awk -v OFS='\t' '{if ($5=="Pattern") print $0}' My_file
会出现错误:
bash:寻找匹配的“”时出现意外的EOF
bash:语法错误:意外的文件结尾
当我粘贴文件名但不是通过制表符完成时,该命令实际上有效。
谁能告诉我我做错了什么?
谢谢你!
答案1
试试这个:
awk 'BEGIN{FS="\t"; OFS="\t"}{if ($5=="Pattern") print $0}' My_file
如果我理解你的问题,那就可以了。