如何使用 vim 命令或 sed/awk 命令将具有不同列数的行分隔到另一个文件中? [关闭]

Posted

技术标签:

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

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

【问题讨论】:

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

无需查看您的数据,

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

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

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

【讨论】:

以上是关于如何使用 vim 命令或 sed/awk 命令将具有不同列数的行分隔到另一个文件中? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Shell Sed命令

sed命令用法

sed awk 样例

linux shell sed awk 命令(2)-awk

Linux bash 文本处理命令awk,sed,grep 用法

inux基础命令 sed awk grep 及部分快捷键