gpt4 book ai didi

Linux:追加命令

转载 作者:太空宇宙 更新时间:2023-11-04 11:19:44 24 4
gpt4 key购买 nike

我有一个文件名为 mailids.csv 的数据格式为

eid | emailid| date

其下有 1000000 个字段。

1| a1@xyz.com|2013-09-20 02:23:18
2| a2@xyz.com|2013-09-20 02:23:18
3| a3@xyz.com|2013-09-20 02:23:18
4| a4@xyz.com|2013-09-20 02:23:18
5| a5@xyz.com|2013-09-20 02:23:18
6| a6@xyz.com|2013-09-20 02:23:18
7|a7@xyz.com|2013-09-20 02:23:18
8|a8@xyz.com|2013-09-20 02:23:18
.
.
.
.
.
.
.
1000000| a1000000 | 2013-09-20 02:23:18

现在我想将“|file” append 到“eid|emailid|date”,前 500000 个“Y”应该 append ,接下来的 500000 个“N”应该 append 。

你能帮我用 linux 命令像上面提到的那样 append 吗?

最佳答案

不确定我是否理解格式,但这里有一个简单的方法:

cat 1.txt 
sd
asd
asd
asd
asd
ada
asd


awk '{if (NR > 2) { print $0"|Y"} else { print $0"|N"}}' 1.txt
sd|N
asd|N
asd|Y
asd|Y
asd|Y
ada|Y
asd|Y
|Y

NR 是行号,我在行尾添加 N,您可以使用 awk -F"|"进一步拆分打印 $1"|"$2"|N"

更新 sed 方法

根据要求,虽然可能使用 sed,但所需的整体调用变得更加复杂,awk 本身是一种编程语言,允许您真正获得特定的每个下一行(行号)字符模式,简而言之,您正在解析一次每一行/每一行,而 sed 实际上用于更多模式匹配和替换。尽管如此,它仍然是可能的,这里是一个示例,将一些随机文件的前三行更改为 yes,将文件的其余部分更改为行尾的 N...

cat a1
asdas
asd
asd
as
das
d
aa
sd
sa
dsa

上面的实际文件:

现在执行 sed 行以进行更改:

file=a1; lines=$(wc -l < $file);sed "1,3 s/$/Y/" $file|sed "4,$lines s/$/N/"

产生:

asdasY
asdY
asdY
asN
dasN
dN
aaN
sdN
saN
dsaN

关于Linux:追加命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18983354/

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