gpt4 book ai didi

bash - 如何更改文本中特定行的单词?

转载 作者:行者123 更新时间:2023-11-29 09:31:00 27 4
gpt4 key购买 nike

我正在更改文本中特定行的最后一个词。这个词可以在其他行中重复。

我可以为此使用什么命令?

# file libros.bd 
while IFS = read line
do
word=$(echo $line|rev|cut -f1 -d' '|rev) #Last word in each line
done <"$file"

这是我的输入文件:

18654 "JuanFrances" autor1 1964 1 no

18655 "Lucas Tercero" autor2 1987 2 si

18656 "Fernando Emperador" autor3 1845 5 no

18657 "Juan Fernando" autor3 1965 1 si

这将是最终状态

18654 "JuanFrances" autor1 1964 1 no

18655 "Lucas Tercero" autor2 1987 2 si

18656 "Fernando Emperador" autor3 1845 5 no

18657 "Juan Fernando" autor3 1965 1 no

这是一种方式

sed ''"$line"'s/no/si/' libros.bd > temp && mv temp libros.bd

最佳答案

你可以使用 grep

grep -Eo '[^ ]+$'

所以在你的情况下:

word=$(echo $line| grep -Eo '[^ ]+$')
如您所知,

grep 搜索模式,-E--extended-regexp 或更高级的正则表达式数学。 -o 输出匹配的行而不给它们着色。

正则表达式部分:[^ ] 匹配空格+ 匹配前面一次或多次$ 匹配行尾

这是基于您的输入的输出:

no
si
no
si
state
no
si
no
no

关于bash - 如何更改文本中特定行的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55559112/

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