gpt4 book ai didi

linux - 根据第一列的第一个字符和长度拆分文件

转载 作者:行者123 更新时间:2023-12-03 23:25:49 26 4
gpt4 key购买 nike

我想拆分一个.txt一分为二,一个文件包含所有行,其中第一列的第一个字符是“A”,第一列中的字符总数为 6,而另一个文件包含所有其余行。搜索让我找到了 awk命令和基于第一个字符分隔文件的方法,但我找不到任何基于列长度分隔它的方法。
我不熟悉 awk ,所以我尝试的(无济于事)是 awk -F '|' '$1 == "A*****" {print > ("BeginsWithA.txt"); next} {print > ("Rest.txt")}' FileToSplit.txt .
任何帮助或指向正确方向的指针将不胜感激。
编辑:正如 RavinderSingh13 所提醒的,我最好放一些输入和预期输出的样本/示例。
所以,这是一个输入示例:

#FileToSplit.txt#
2134|Line 1|Stuff 1
31516784|Line 2|Stuff 2
A35646|Line 3|Stuff 3
641|Line 4|Stuff 4
A48029|Line 5|Stuff 5
A32100|Line 6|Stuff 6
413|Line 7|Stuff 7
预期的输出是什么:
#BeginsWith6.txt#
A35646|Line 3|Stuff 3
A48029|Line 5|Stuff 5
A32100|Line 6|Stuff 6

#Rest.txt#
2134|Line 1|Stuff 1
31516784|Line 2|Stuff 2
641|Line 4|Stuff 4
413|Line 7|Stuff 7

最佳答案

您想要做的是使用正则表达式和长度函数。你不显示你的输入,所以我会让你来设置字段分隔符。根据你的描述,你可以这样做:

awk '/^A/ && length($1) == 6 { print > "file_a.txt"; next } { print > "file_b.txt" }' file
哪个将获取 file 中的信息如果第一个字段以 "A" 开头并且是 6字符长度,记录写入 file_a.txt , 否则记录写入 file_b.txt (根据需要调整名称)

关于linux - 根据第一列的第一个字符和长度拆分文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66850290/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com