当前位置:首页 » 编程软件 » 怎么修改shell脚本中的内容

怎么修改shell脚本中的内容

发布时间: 2024-12-03 08:40:55

❶ 求助shell脚本修改xml的值

假设你的内容在1.xml中,执行这个命令就行了(先备份一份原文件,-i参数会直接将结果覆盖到原文件上):
sed -i 's/\(\svalue=\"\)[^\"]*\"/\1ccc\"/;s/\(\sdefaultValue=\"\)[^\"]*\"/\1ccc\"/;' 1.xml

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

1、可以借助于shell命令执行另一个脚本文件或者用变量保存。比如a.sh和b.sh,a.sh中调用b.sh的代码,一起输出"hello world"的字符串。b.sh的代码如下echo " world!"。

❸ 使用shell脚本替换与更新文件里的一段内容,可以使用sed, awk等linux工具

我也给个思路吧 —— 用sed根据地址范围截取文件内容,用Here documents方法添加新的多行内容,然后重组文件。具体步骤如下:

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'1,/^<abcdef>/p'test.xml>tmp
cat<<EOF>>tmp
forhnamein`echo"$hostnames"|tr','''`
do
insert$hname
insert$paragraph
done
EOF
sed-n'/^</abcdef>/,$p'test.xml>>tmp
mvtmptest.xml

注意:

1) for a in b 结构中,b集合里的内容必需要空格分隔。所以我这里做了转换,用tr命令将逗号分隔改为了空格分隔。

2)第二个EOF必需顶格写,前面不能有空格。

❹ shell 脚本编写修改文件

修改脚本中的对应变量可以实现替换内容的修改,具体实现如下:




#!/usr/bin/env bash

PASS_MAX_DAYS=90
PASS_MIN_DAYS=2
PASS_MIN_LEN=8
PASS_WARN_AGE=7

login_path="/etc/login.defs"
pwquality_path="/etc/security/pwquality.conf"

if [ -f $login_path ]; then
sed -i -E "s/(^PASS_MAX_DAYS.)[0-9]+/1$PASS_MAX_DAYS/g" $login_path
sed -i -E "s/(^PASS_MIN_DAYS.)[0-9]+/1$PASS_MIN_DAYS/g" $login_path
sed -i -E "s/(^PASS_MIN_LEN.)[0-9]+/1$PASS_MIN_LEN/g" $login_path
sed -i -E "s/(^PASS_WARN_AGE.)[0-9]+/1$PASS_WARN_AGE/g" $login_path
echo "完成$login_path文件的替换"
else
echo "$login_path 文件不存在,请检查配置"
fi

if [ -f $pwquality_path ]; then
echo password requisite pam_cracklib.so minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 >>$pwquality_path
echo account required /lib/securtiy/pam tally.so deny=5 no_magic_root reset >>$pwquality_path
echo "对$pwquality_path完成追加"
else
echo "$pwquality_path 文件不存在,请检查配置"
fi

❺ Linux下的shell编程 如何替换文件中的内容

可以这样做:

方法1:sed -i 's/被替换的内容/要替换成的内容/' file

方法2:sed 's/被替换的内容/要替换成的内容/g' file > file.out;mv file.out file。

(5)怎么修改shell脚本中的内容扩展阅读:

Shell编程的常用技巧:

一、自动补齐:在linux中对于命令或路径,可以TAB键进行自动补全,以下事项需要注意:

1、只存在一个该输入字符开头的命令或路径,此时自动补全;

2、存在多个该输入字符开头的命令或路径,此时第一次点击TAB键无效,此时再次点击TAB会罗列出所有该字符开头的命令或路径,继续输入直到仅仅剩一个时自动补全;

3、如果命令已经是完整的,TAB键则是本来的移动功能;而路径的话要看命令自身的行为决定后续动作。

二、历史命令

1、history命令可以显示历史执行过的命令;

2、使用!+序号执行该序号对应的命令;

3、使用!+字符执行该字符开头的最后一次执行的指令。

三、命令别名

1、实现别名:alias ddd="df -Th";

2、删除别名:unalias ddd;

3、显示所有别名命令列表:alias;

4、存放位置:~/.bashrc (加入该文件后,重启后不会消失)。

四、重定向

1、重定向标准输入:< 命令接收输入的途径由键盘改为文件;

2、重定向标准输出:> 将命令的执行结果输出到指定文件,而不是直接显示到屏幕;

3、重定向标准输出:>> 将命令的执行结果追加输出到指定文件;

4、重定向标准错误:2> 清除指定文件的内容,并把标准错误信息保存到指定文件;

5、重定向标准错误:2>> 标准错误信息追加到指定文件;

6、重定向标准输出和标准错误:&> 将标准输出、标准错误信息全部保存到指定文件,而不是直接显示在屏幕上。

❻ shell脚本替换A、B两个文件里面的内容

先读取A文件中那行内容,然后通过awk获取B文件中的第五行内容,替换后重新覆盖写入A文件。
代码如下:
#!/bin/sh
A=/usr/123.txt
B=/tem/456.conf
read line <$A
awk -v a=$line 'NR==5{print $1"\t"a}' $B >$A

❼ 怎么通过你shell脚本删除文件的某一行以及后面几行

1、启动Linux系统,用ssh工具(xshell或者SecureCRT等)连上Linux系统。

热点内容
传奇机器人脚本 发布:2024-12-04 04:41:51 浏览:948
汇编语言编译器属于什么软件 发布:2024-12-04 04:29:45 浏览:948
aspx上传漏洞 发布:2024-12-04 04:12:19 浏览:939
编译后的数据库文件 发布:2024-12-04 04:12:12 浏览:324
c调用python的函数 发布:2024-12-04 04:04:52 浏览:795
aspnet后台管理系统源码 发布:2024-12-04 04:04:43 浏览:248
安卓怎么取消折叠置顶聊天怎么设置 发布:2024-12-04 03:59:04 浏览:581
atm机上密码输错提示什么 发布:2024-12-04 03:55:56 浏览:937
oppo怎么给相册加密码 发布:2024-12-04 03:50:12 浏览:78
怎么修改iphone密码 发布:2024-12-04 03:45:55 浏览:860