unix命令将csv文件中的字符串替换为null



我有一个csv文件,其中包含多个标头及其相应的记录,如下所示-

NA,A,B,C
$H,1,2,3
NA,D,E,F
$R,4,5,6
NA,G,H,I
$R,7,8,9
NA,J,K,L
$R,10,11,12

请注意,以NA开头的行是标题。需要将"NA"替换为null。所以我的预期输出将是-

,A,B,C
$H,1,2,3
,D,E,F
$R,4,5,6
,G,H,I
$R,7,8,9
,J,K,L
$R,10,11,12

我已经尝试了下面的代码,但没有工作-

awk -F '|' -v OFS='|' '$1 == "NA" { $1 = "" }1' test.csv >test_n.csv

使用一个相当简单的sed:

sed 's/^NA,/,/' file
,A,B,C
$H,1,2,3
,D,E,F
$R,4,5,6
,G,H,I
$R,7,8,9
,J,K,L
$R,10,11,12

更改代码中的FS会起的作用

$ awk 'BEGIN{FS=OFS=","}$1=="NA"{$1=""}1' input_file
,A,B,C
$H,1,2,3
,D,E,F
$R,4,5,6
,G,H,I
$R,7,8,9
,J,K,L
$R,10,11,12

相关内容

  • 没有找到相关文章

最新更新