如何在shell脚本中修改添加替换指定文件中的内容

我有时候要经常修改网络配置我想写一个脚本自动修改
把DHCP修改成手动网络
这里是手动配置

DEVICE=eth1
TYPE=Ethernet
UUID=c1ad2174-860b-464d-beba-1433b1988cdb
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
HWADDR=08:00:27:2A:32:90
IPADDR=10.0.0.10
PREFIX=24
GATEWAY=10.0.0.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth1"
这里是自动配置
DEVICE=eth1
TYPE=Ethernet
UUID=c1ad2174-860b-464d-beba-1433b1988cdb
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth1"
HWADDR=08:00:27:2A:32:90
PEERDNS=yes
PEERROUTES=yes
LAST_CONNECT=1419610509
系统默认是dhcp 请问一下这个脚本改如何写呢,

1、启动Linux系统,用ssh工具连上Linux系统。

2、bash自带了一些调试选项。

3、在脚本启动时添加调试选项。来调试debug.sh。

4、在脚本内添加调试选项,使用set 命令。

5、现在要看debug.sh脚本执行的调试信息,就不需要使用bash -x  ./debug.sh执行了。

6、在脚本开头添加-xv选项。

7、同样现在执行./debug.sh,也可打印出调试信息。

注意事项:

shell脚本在计算机科学中,是指“为使用者提供操作界面”的软件(命令解析器)。类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。

温馨提示:内容为网友见解,仅供参考
第1个回答  2020-02-17
1、可以借助于shell命令执行另一个脚本文件或者用变量保存。比如a.sh和b.sh,a.sh中调用b.sh的代码,一起输出"hello world"的字符串。b.sh的代码如下echo " world!"。

2、a.sh可以借助"."来执行b.sh脚本,b.sh执行结果可以保存在变量中,也可直接输出,a.sh中的内容如下:echo "可以用.命令来执行脚本文件"echo "hello `./b.sh`"var=`./b.sh`echo"hello $var";。

3、a.sh也可以借助source命令执行b.sh脚本,b.sh执行结果可以保存在变量中,也可直接输出。a.sh中的内容如下:echo "用source命令执行脚本文件"echo "hello `source ./b.sh`"var=`source ./b.sh`echo "hello $var"。

4、a.sh中也可以借助于bash、sh等命令来执行b.sh脚本,b.sh的执行结果可以保存在变量中,也可以直接输出。a.sh中的内容如下。

5、另外,也可以使用$(),将b.sh的执行结果的内容保存到变量中,就完成了。

本回答被网友采纳
第2个回答  推荐于2017-09-29
用sed 替换
比如替换‘BOOTPROTO=none' 这一行可以用这个命令:
sed -i -e 's|BOOTPROTO=none|BOOTPROTO=dhcp|' conf.txt
其他行同理追问

我试试!可以的话立马采用 其中的-i -e 和s是什么意思呢

追答

-i 是直接修改文件文件名可以放到命令最后
-e ’s|aaa|bbb|' 把aaa替换成bbb

本回答被提问者和网友采纳
第3个回答  2017-09-25
-e 是多命令编辑参数,当你想用一条sed命令对一个文件内容进行多种操作时使用的,比如sed -i -e 's|BOOTPROTO=none|BOOTPROTO=dhcp|' -e 's|username=none|username=dhcp|' conf.txt

此处不加-e选项也是可以的。因为只有一个替换操作指令。s是替换的意思,和vi里的编译命令s/old/new/g很像。

如何在shell脚本中修改添加替换指定文件中的内容
在shell脚本中修改或替换指定文件的内容,可以通过多种方法实现。首先,你可以创建两个脚本文件,例如a.sh和b.sh。在a.sh中,你可以调用b.sh来执行你需要的操作,例如输出"hello world"。b.sh的代码简单明了,如`echo world!`。然后,a.sh可以通过`.`命令来执行b.sh,其输出结果可以被存储在变量...

Linux下的shell编程 如何替换文件中的内容
方法1:sed -i 's\/被替换的内容\/要替换成的内容\/' file 方法2:sed 's\/被替换的内容\/要替换成的内容\/g' file > file.out;mv file.out file。

如何在shell脚本中修改添加替换指定文件中的内容
1、启动Linux系统,用ssh工具连上Linux系统。2、bash自带了一些调试选项。3、在脚本启动时添加调试选项。来调试debug.sh。4、在脚本内添加调试选项,使用set 命令。5、现在要看debug.sh脚本执行的调试信息,就不需要使用bash -x .\/debug.sh执行了。6、在脚本开头添加-xv选项。7、同样现在执行.\/debu...

shell如何取出特定文本内容并替换另一个文本中的指定内容???
1、按=分割取第二列 cat $file1|grep mqserver|awk -F= '{print $2}'`2、直接替换文件内容 sed -i "s\/127.0.0.1\/192.168.1.1\/" file1 3、实例:!\/bin\/sh file1=ip1.txt file2=ip2.txt IP1=`cat $file1|grep mqserver|awk -F= '{print $2}'`IP2=`cat $file2|grep...

在linux下怎么使用shell脚本修改文本里的相关内容?
检查进程是否存在检测进程CPU利用率检测进程内存使用量检测进程句柄使用量查看TCP或UDP端口是否在监听查看进程名正在运行的个数检测系统CPU负载检测系统磁盘空间总结1. 检查进程是否存在通过脚本获取指定用户下指定进程名的进程ID。此函数接受两个参数:用户名和进程名。使用`ps`命令查找进程信息,通过`grep`...

使用shell脚本替换与更新文件里的一段内容,可以使用sed, awk等Linux工...
1)截取test.xml文件起始行到<abcdef>行,保存到tmp文件;2)将要添加的内容根据变量值展开,附加写入tmp文件;3)截取test.xml文件<\/abcdef>行到结束行,附加写入tmp文件。4)移动tmp文件覆盖test.xml文件。代码:!\/bin\/sh$hostnames="host1,host2,host3 ..."$paragraph="many_strings"sed -n...

shell脚本定位某个文件中特定位置的字符串并进行替换应该怎么写?_百度...
根据位置替换即可:read ipsed -ri "\/subnet\/s\/(subnet )[^ ]+( netmask.*)\/\\1$ip\\2\/" \/mnt\/file\/subnet\/ - 先正则匹配到含有subnet的行,然后替换。替换的时候将不变的部分用小括号括起来,后面依次用\\1 , \\2 原封不动地引用回来。-r 选项用于支持扩展正则,这样就不需要额外的转义符...

shell脚本替换A、B两个文件里面的内容
可以使用sed进行操作,先定义一个参数读取A文件中的第一行 LineA=`sed...` 或者是使用cat把内容读取出来,再使用sed的替换方法,将B文件中的第一行替换为$LineA即可。希望有帮助

shell中文件字符串替换
答案:在Shell中,可以使用`sed`命令进行文件字符串替换。具体语法为:`sed -i 's\/原字符串\/新字符串\/g' 文件名`。详细解释:1. sed命令简介 `sed`是一个流编辑器,用于对文本文件进行非交互式处理。它可以对文件内容进行搜索、替换、删除、插入等操作。2. 字符串替换语法 `sed`命令中的替换...

shell 中文件字符串替换
首先,创建一个临时文件`tmp_desc`(通过`mktemp`命令),然后从输入文件中逐行读取,如果找到'desc',则使用`sed`替换并记录当前行号,否则直接输出。脚本的结构如下:当你需要处理大型文件时,shell脚本可能效率较低,因为它们不擅长处理大量数据。在这种情况下,使用像Perl这样的编程语言可能更为高效,...

相似回答