我在这个文件中有这个文字:
test.php的
$databases = array (
'default' =>
array (
'default' =>
array (
'database' => 'original',
'username' => 'root',
'password' => 'root',
'host' => 'localhost'
),
),
);
Run Code Online (Sandbox Code Playgroud)
在终端运行此行以用'new'替换'original'
sed -i 's/original/new/g' test.php
Run Code Online (Sandbox Code Playgroud)
更新:错误消息是:
sed:1:"test.php":未定义标签'est.php'
问题是什么?
更新2:
如果我只是运行:(我删除'-i')
sed 's/original/new/g' test.php
Run Code Online (Sandbox Code Playgroud)
我看到终端中修改了文件文本.但是文件没有保存.
我有以下制表符分隔数据:
chr1 3119713 3119728 MA05911Bach1Mafk 839 +
chr1 3119716 3119731 MA05011MAFNFE2 860 +
chr1 3120036 3120051 MA01502Nfe2l2 866 +
Run Code Online (Sandbox Code Playgroud)
我想要做的是从第4列删除7个字符.导致
chr1 3119713 3119728 Bach1Mafk 839 +
chr1 3119716 3119731 MAFNFE2 860 +
chr1 3120036 3120051 Nfe2l2 866 +
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?请注意,输出也需要TAB分隔.
我坚持使用以下代码,从第一列开始替换,我不想要
sed 's/^.\{7\}//' myfile.txt
Run Code Online (Sandbox Code Playgroud) 我已将字符串存储在两个变量中(行是当前行,新行是替换行)。我的代码如下所示:
sed -i "s@line@new@" output_file
Run Code Online (Sandbox Code Playgroud)
然而,这个解决方案不适用于 FreeBSD。
有什么方法可以稍微修改一下这段代码,使其可以工作吗?
哎呀,我只是不记得了......我最近有一个很酷的方法来使用agwithsed来进行查找和替换。要点很简单,比如:
ag foo -l | ... magic here ... sed 's/foo/bar/g'
Run Code Online (Sandbox Code Playgroud)
这不起作用,但你可能知道什么是有效的。谢谢!
附言。为银色搜索者欢呼三声。