有没有一种方法,不使用双循环来完成下面的sed命令
输入:
Time
Banana
spinach
turkey
sed -i "/Banana/ s/$/Toothpaste/" file
输出:
Time
BananaToothpaste
spinach
turkey
到目前为止,我得到的是一份需要很长时间才能完成的双重清单。
名单a有一堆数字 列表b有一组相同的数字,但顺序不同
对于A中的每个条目,我想在B中找到具有相同数字的行,并在其末尾加上值C。
希望这是有意义的,即使我的例子没有
我在Bash中做了下面的工作,但是它非常慢。。。
for line in $(cat DATSRCLN.txt.utf8); do
srch=$(echo $line | awk -F'^' '{print $1}');
rep=$(echo $line | awk -F'^' '{print $2}');
sed -i "/$(echo $srch)/ s/$/^$(echo $rep)/" tmp.1;
done
谢谢!
如果您使用Python3,以下模块将帮助您: https://github.com/mahmoudadel2/pysed
将模块文件放入Python3模块路径,然后:
作为比赛的后起之秀,下面是我在Python中实现sed的方法:
示例:
将foo.txt中的所有“foo”替换为“bar”
将所有“foo”替换为“foo.txt”中的“bar”,并将结果保存为“foo.updated.txt”。
将只将“foo”的第一个匹配项替换为“bar”,并将结果保存到原始文件“foo.txt”
使用
re.sub()
:这将捕获一个组(在第一个括号之间),并用它本身(数字部分)替换它,后跟所需的后缀。需要使用
r''
(原始字符串),以便正确解释转义。相关问题 更多 >
编程相关推荐