gpt4 book ai didi

linux - 我想从文件中搜索一个词并将其替换为文件中的另一个值

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:09:53 25 4
gpt4 key购买 nike

我想从一个文件中搜索一个词,而不是代表该搜索我想替换该文件中的一个词。下面是需要查找和替换的文件中的内容(这是.csv文件) 文件名为test.csv-:

A,B,C,D,E
unix,123,crap,as,d
dpk,123,crap,as,d
shy,123,crap,as,d
ghn,123,crap,as,d
unnix,123,crap,as,d

下面是我使用的命令-:

grep -rl 'unix' test.csv | xargs sed -i 's/crap/linux/1'

此命令的输出-:

A,B,C,D,E
unix,123,linux,as,d
dpk,123,linux,as,d
shy,123,linux,as,d
ghn,123,linux,as,d
unnix,123,linux,as,d

但我希望 sed 应该从包含 unix 的行中而不是从整个文件中替换单词 crap。请在这方面提供帮助。或者有没有其他方法可以做到这一点。我想要的输出-:

A,B,C,D,E
unix,123,linux,as,d
dpk,123,crap,as,d
shy,123,crap,as,d
ghn,123,crap,as,d
unnix,123,crap,as,d

最佳答案

But i want that sed should replace the word crap from the row which contains unix not from whole file

你可以说:

sed -i '/unix/s/crap/linux/' test.csv

编辑:

如果您打算仅在 grep 生成的过滤 输出中执行替换,您可以说:

grep 'unix' test.csv | sed 's/crap/linux/'

为了将输出保存到文件中,添加一个重定向:

grep 'unix' test.csv | sed 's/crap/linux/' > new.csv

关于linux - 我想从文件中搜索一个词并将其替换为文件中的另一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19953441/

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