【发布时间】:2021-05-17 20:20:25
【问题描述】:
我正在尝试不同的命令来处理 csv 文件,其中分隔符是管道 | 字符。
虽然当逗号是分隔符时这些命令确实有效,但当我用管道替换它时会引发错误:
awk -F[|] "NR==FNR{a[$2]=$0;next}$2 in a{ print a[$2] [|] $4 [|] $5 }" OFS=[|] file1.csv file2.csv
awk "{print NR "|" $0}" file1.csv
我试过了,"|"、[|]、/| 无济于事。
我在 Windows 上使用 Gawk。我错过了什么?
【问题讨论】:
-
您是否尝试过
\|,例如awk -F\| '{ print NF }' bar.txt? -
您的数据是什么样的?错误是什么?
-
这是您的
print的问题。正如我在回答中指出的那样,只需使用逗号分隔字段即可。 -
您尝试使用
"|"不起作用,因为您所做的只是关闭引号,然后放置一个未转义的管道,然后重新打开它们。您需要使用不同的引号:awk '{ print NR "|" $0}'和/|不起作用,因为那甚至不是转义字符!