【问题标题】:How to separate rows with different number of columns into another file using vim commands or sed/awk commands? [closed]如何使用 vim 命令或 sed/awk 命令将具有不同列数的行分隔到另一个文件中? [关闭]
【发布时间】:2021-07-31 19:51:27
【问题描述】:

我有一个数据文件,其中有些行有 15 列,而有些行有 9 列。我需要将此文件分成两个文件。一个文件包含 9 列的行,另一个包含 15 列的行。谁能帮我做到这一点。我尝试了几个“awk”命令,但没有奏效。我在data.txt附上了我的数据文件的图片。

【问题讨论】:

  • 欢迎来到 SO,请在您的问题中添加 3 个简单的内容。1st- 输入示例,2nd- 预期输出示例,3rd- 您以代码形式付出的努力解决你自己的问题,谢谢。

标签: awk vim sed grep


【解决方案1】:

无需查看您的数据,

awk '{print > (FILENAME "." NF)}' infile

将创建 2 个新文件,infile.9infile.15(如果存在具有不同字段数的记录,则会创建更多文件。

  • FILENAME 是一个 awk 内置变量,毫无疑问,它包含当前文件名。
  • NF 是一个 awk 内置变量,用于保存当前记录中的字段数。
  • awk 中的字符串连接没有特殊运算符,您只需并排放置 2 个(或更多)字符串或变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-17
    • 1970-01-01
    • 1970-01-01
    • 2013-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多