如何使用 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.9
和 infile.15
(如果存在具有不同字段数的记录,则会创建更多文件。
FILENAME
是一个 awk 内置变量,毫无疑问,它包含当前文件名。
NF
是一个 awk 内置变量,用于保存当前记录中的字段数。
awk 中的字符串连接没有特殊运算符,您只需并排放置 2 个(或更多)字符串或变量。
【讨论】:
以上是关于如何使用 vim 命令或 sed/awk 命令将具有不同列数的行分隔到另一个文件中? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章