awk没有在csv的最后一列中进行替换

特索拉特

我需要跨一个大的列工作,.tsv如果它与许多字符串中的任何一个匹配,都应替换列名,如果找不到匹配项,则将其标记为错误。以下是我所拥有的简化版本,它在这里有效。

制表符分隔的示例输入test.tsv

Col1    Col2    Col3    Col4
A   B   C   Foo
D   E   F   Bar
G   H   I   Baz

脚本:

#!/bin/bash

set -eu
shopt -s failglob

awk 'BEGIN {FS=OFS="\t"} \
     {if (NR==1) \
        {for (i = 1 ; i <= NF ; i++) \
        if ($i == "Col1") { $i = "NewCol1" } \
        else if ( $i == "Col2") { $i = "NewCol2" } \
        else if ( $i == "Col4") { $i = "NewCol4" } \
        else { $i = "Error: "$i } \
        } print \
        }' test.tsv

制表符分隔的输出:

NewCol1 NewCol2 Error: Col3 NewCol4
A   B   C   Foo
D   E   F   Bar
G   H   I   Baz

但是,在我实际的过程中Col4并没有成功地处理过。而是将其标记为错误。如果我使用LibreOffice Calc打开文件并再次将其保存为,则不会发生此问题.tsv这使我认为这可能是行尾格式问题,但是我使用vim检查了输入文件中的结尾,并且它们一致\n我在这里想念什么?

阿努巴瓦

显然,您输入的行以^M结尾\r您可以将其awk与自定义正则表达式一起使用RS(这需要GNU awk):

awk -v RS='\r?\n' '...' file

-v RS='\r?\n'设置RS或记录分隔符作为可选的 \r后跟\n,从而允许它匹配以\n结尾的行\r\n

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AWK每隔一列打印一次,从最后一列(和最后一列旁边)开始进行N次交互(从右到左打印)

来自分类Dev

如何将csv文件中的最后一列交换为第一列?+ awk

来自分类Dev

如何替换值大于 0 的 csv 文件的最后一列

来自分类Dev

AWK脚本无法打印CSV文件的最后一列

来自分类Dev

Zurb Foundation 4-第一和最后一列没有填充

来自分类Dev

AWK-打印最后一列;如果最后一个为空,则打印最后一列

来自分类Dev

替换数据最后一列中的数字

来自分类Dev

创建awk程序以添加数据的最后一列

来自分类Dev

awk将最后一列放在新行中

来自分类Dev

AWK-打印最后一列以及空值

来自分类Dev

最后一列没有名称,为什么?

来自分类Dev

SQL如何在一列中进行ORDER BY语句

来自分类Dev

MySQL,在一列中进行多个BIT操作

来自分类Dev

awk:删除第一列,并在最后一列之后添加四列

来自分类Dev

解析熊猫中的CSV文件,最后一列中带有逗号

来自分类Dev

如何从所有文件中删除第一列并进行替换?

来自分类Dev

Excel在基于另一列的一列中进行重复

来自分类Dev

如何从一列或另一列中进行选择?

来自分类Dev

从一列中选择具有最大值的多列,而在另一列中进行区分

来自分类Dev

使用VBA替换CSV文件中一列中的所有值

来自分类Dev

根据最后一列对数据进行排序

来自分类Dev

根据最后一列Jquery进行表排序

来自分类Dev

在find命令中进行awk替换

来自分类Dev

熊猫read_csv,最后一列包含逗号

来自分类Dev

命令“cut”不显示最后一列 CSV

来自分类Dev

使用带有多个分隔符的awk将第二列替换为第一列

来自分类Dev

在某一列不能有重复项的情况下,我需要从表中进行选择

来自分类Dev

如何根据没有循环的另一列替换列(数据框)中组的所有相同值?

来自分类Dev

使用python覆盖csv文件中的第一列和最后一列

Related 相关文章

  1. 1

    AWK每隔一列打印一次,从最后一列(和最后一列旁边)开始进行N次交互(从右到左打印)

  2. 2

    如何将csv文件中的最后一列交换为第一列?+ awk

  3. 3

    如何替换值大于 0 的 csv 文件的最后一列

  4. 4

    AWK脚本无法打印CSV文件的最后一列

  5. 5

    Zurb Foundation 4-第一和最后一列没有填充

  6. 6

    AWK-打印最后一列;如果最后一个为空,则打印最后一列

  7. 7

    替换数据最后一列中的数字

  8. 8

    创建awk程序以添加数据的最后一列

  9. 9

    awk将最后一列放在新行中

  10. 10

    AWK-打印最后一列以及空值

  11. 11

    最后一列没有名称,为什么?

  12. 12

    SQL如何在一列中进行ORDER BY语句

  13. 13

    MySQL,在一列中进行多个BIT操作

  14. 14

    awk:删除第一列,并在最后一列之后添加四列

  15. 15

    解析熊猫中的CSV文件,最后一列中带有逗号

  16. 16

    如何从所有文件中删除第一列并进行替换?

  17. 17

    Excel在基于另一列的一列中进行重复

  18. 18

    如何从一列或另一列中进行选择?

  19. 19

    从一列中选择具有最大值的多列,而在另一列中进行区分

  20. 20

    使用VBA替换CSV文件中一列中的所有值

  21. 21

    根据最后一列对数据进行排序

  22. 22

    根据最后一列Jquery进行表排序

  23. 23

    在find命令中进行awk替换

  24. 24

    熊猫read_csv,最后一列包含逗号

  25. 25

    命令“cut”不显示最后一列 CSV

  26. 26

    使用带有多个分隔符的awk将第二列替换为第一列

  27. 27

    在某一列不能有重复项的情况下,我需要从表中进行选择

  28. 28

    如何根据没有循环的另一列替换列(数据框)中组的所有相同值?

  29. 29

    使用python覆盖csv文件中的第一列和最后一列

热门标签

归档