在命令行中使用 awk 时无法使用制表符补全

在命令行中使用 awk 时无法使用制表符补全

我正在尝试使用 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

如果我理解你的问题,那就可以了。

相关内容