作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想拆分一个.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/
我是一名优秀的程序员,十分优秀!