相关疑难解决方法(0)

如何使用sed替换换行符(\n)?

如何\n使用sed命令替换换行符()?

我没试成功:

sed 's#\n# #g' file
sed 's#^$# #g' file
Run Code Online (Sandbox Code Playgroud)

我如何解决它?

sed

1295
推荐指数
23
解决办法
157万
查看次数

如何使用bash在文件中间添加一行文本?

我正在尝试在bash脚本中的文本文件中间添加一行文本.具体来说,我正在尝试将名称服务器添加到我的/etc/resolv.conf文件中.就目前而言,resolv.conf看起来像这样:

# Generated by NetworkManager
domain dhcp.example.com
search dhcp.example.com
nameserver 10.0.0.1
nameserver 10.0.0.2
nameserver 10.0.0.3
Run Code Online (Sandbox Code Playgroud)

我的目标是添加nameserver 127.0.0.1上面所有其他名称服务器行,但低于上面的任何文本.最后我想将我的resolve.conf文件看起来像这样:

# Generated by NetworkManager
domain dhcp.example.com
search dhcp.example.com
nameserver 127.0.0.1
nameserver 10.0.0.1
nameserver 10.0.0.2
nameserver 10.0.0.3
Run Code Online (Sandbox Code Playgroud)

这怎么可能通过bash脚本?这是sed还是awk可以做的事情?或者创造性的greping重新创建文件是我最好的举动?

linux bash awk grep sed

41
推荐指数
3
解决办法
4万
查看次数

match and replace multiple newlines with a SED or PERL one-liner

I have an input C file (myfile.c) that looks like this :

void func_foo();
void func_bar();

//supercrazytag
Run Code Online (Sandbox Code Playgroud)

I want to use a shell command to insert new function prototypes, such that the output becomes:

void func_foo();
void func_bar();
void func_new();

//supercrazytag
Run Code Online (Sandbox Code Playgroud)

So far I've been unsuccessful using SED or PERL. What didn't work:

sed 's|\n\n//supercrazytag|void func_new();\n\n//supercrazytag|g' < myfile.c
sed 's|(\n\n//supercrazytag)|void func_new();\1|g' < myfile.c
Run Code Online (Sandbox Code Playgroud)

Using the same patterns with perl -pe "....." didn't work either.

What am I missing ? I've …

perl replace newline sed multiline

3
推荐指数
1
解决办法
3882
查看次数

标签 统计

sed ×3

awk ×1

bash ×1

grep ×1

linux ×1

multiline ×1

newline ×1

perl ×1

replace ×1