gpt4 book ai didi

bash - 在 bash 中为文本的每一行添加前缀

转载 作者:行者123 更新时间:2023-11-29 08:51:53 26 4
gpt4 key购买 nike

假设有一个文本文件a.txt 例如

aaabbbcccddd

我需要为文件中的每一行添加一个前缀(例如 myprefix_):

myprefix_aaamyprefix_bbbmyprefix_cccmyprefix_ddd

我可以用 awk 做到这一点:

awk '{print "myprefix_" $0}' a.txt 

现在我想知道是否有另一种方法可以在 shell 中做到这一点。

最佳答案

使用sed:

$ sed 's/^/myprefix_/' a.txt
myprefix_aaa
myprefix_bbb
myprefix_ccc
myprefix_ddd

这会将以 ^ 开头的每一行替换为 myprefix_。请注意 ^ 不会丢失,因此这允许将内容添加到每行的开头。

您可以使用以下方法缩短您的 awk 版本:

$ awk '$0="myprefix_"$0' a.txt
myprefix_aaa
myprefix_bbb
myprefix_ccc
myprefix_ddd

或传递值:

$ prefix="myprefix_"
$ awk -v prefix="$prefix" '$0=prefix$0' a.txt
myprefix_aaa
myprefix_bbb
myprefix_ccc
myprefix_ddd

也可以用nl来完成:

$ nl -s "prefix_" a.txt | cut -c7-
prefix_aaa
prefix_bbb
prefix_ccc
prefix_ddd

最后:作为John Zwinck explains ,你也可以这样做:

paste -d'' <(yes prefix_) a.txt | head -n $(wc -l a.txt)

在 OS X 上:

paste -d '\0' <(yes prefix_) a.txt | head -n $(wc -l < a.txt)

关于bash - 在 bash 中为文本的每一行添加前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19831827/

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