find / -name httpd.conf # 查看文件在哪个目录
----------------------------- grep 文本匹配搜索工具 -------------------------------
# 字符 'w[ea]ll' 为:weall 和 wall 去匹配这两个字符的所有行并显示
# 字符 'w[^e]ll' 为: 匹配非well 的所有行,并显示
# 字符 '^www' 为: www开头的所有行,并显示
# 字符 'w..k' 为: 匹配 w和K 之间的任意4位字符串,
# 字符 'g*g' 为: 其中的 * 是N个字符为g,如:ggg
--------------------------- sed 增加,删除,替换,选取 ----------------------------
sed [option] [command] [file] # option [ˈɒpʃn] 选项 {wo p xing}
# command [kəˈmænd] 命令
# file [faɪl] 文件,被操作的文件
#参数: a 新增; c 替换; d 删除; i 插入; p 打印; s 取代
-------- d 删除 -------
sed '1d' 1.txt # 使用sed 中 d删除操作:删除第1行数据;
# 需要跟上参数 -i 写入文件,才会对文件本身进行操作
# '$d' 删除最后一行;符号 $ 最后一行
# '1,3d' 删除1到3行
# '1,$d' 删除第一行到最后一行
-------- p 打印 --------
sed -n '/you/p' 1.txt # 匹配字符 you 的行 并打印; /you/ 是正则表达式,要与n 结合使用
-------- a 新增 --------
sed '1,2a 你好啊' 1.txt # 在第一行,第二行后面新增一行 '你好啊' ; 加参数 -i 才会对文件进行修改
# '1a 你好啊\n很高兴认识你' 在第一行后面加两行字符, \n 换行
-------- c 替换 ---------
sed '1c 你好啊' 1.txt # 将第一行替换为: 你好啊
----------------------------- awk 以字段为单位进行处理 -------------------------------
awk [options] '{pattern + action}' {filenames}
# options ['ɒpʃnz] 选择 {啊普醒日}
# pattern [ˈpat(ə)n] 模式
# action [ˈakʃ(ə)n] 行为
# file names 文件名
awk -F ":" 'NR>=2 && NR<=6{print NR,$1}' /etc/passwd
# -F指定分隔符为 :
# 给NR变量赋值一个范围:第2行和第6行
# {print NR打印输出,$1 为第一列}
# 从这个文件里面
================= sed -i ==============
#!/bin/bash
sed -i -e 's/#ETCD_LISTEN_PEER_URLS.*/ETCD_LISTEN_PEER_URLS="http:\/\/10.32.24.123:2380"/g' \
#修改第五行,符号 \ 为换行或特殊字符转义符号
-e 's/ETCD_LISTEN_CLIENT_URLS.*/ETCD_LISTEN_CLIENT_URLS="http:\/\/10.32.24.123:2379"/g' \
#修改第6行,符号 .* 后面的所以内容
-e 's/^ETCD_NAME="default"/ETCD_NAME="controller"/g' \
-e 's/#ETCD_INITIAL_ADVERTISE_PEER_URLS.*/ETCD_INITIAL_ADVERTISE_PEER_URLS="http:\/\/10.32.24.123:2380"/g' \
-e 's/^ETCD_INITIAL_ADVERTISE_PEER_URLS.*/ETCD_INITIAL_ADVERTISE_PEER_URLS="http:\/\/10.32.24.123:2379"/g \
-e 's/#ETCD_INITIAL_CLUSTER_TOKEN.*/#ETCD_INITIAL_CLUSTER_TOKEN="etc-cluster-01"/g' \
-e 's/#ETCD_INITIAL_CLUSTER_STATE.*/#ETCD_INITIAL_CLUSTER_STATE="new"/g' /etc/etcd/etcd.conf
# 指定文件
YDAY=$(date +"%Y%m%d" -d "-1 days")
TDAY=$(date +"%Y%m%d")
#获取当前 系统日期-1 ,存入 变量YDAY ,格式 YYYYMMDD
#获取当前 系统日期 ,存入 变量TDAY ,格式 YYYYMMDD
awk -v YDAY=$YDAY -v TDAY=$TDAY '
NR==1 {
if(substr($0,20,8)==YDAY)
$0=substr($0,1,19) TDAY substr($0,28)
if(substr($0,34,8)==YDAY)
$0=substr($0,1,33) TDAY substr($0,42)
}
/^TH/{
if(substr($0,21,8)==YDAY)
$0=substr($0,1,20) TDAY substr($0,29)
}
{print }' 文件名
查找文件 首行 第20到27个字符 的内容等于 变量YDAY 的,替换成 变量TDAY
查找文件 首行 第34到41个字符 的内容等于 变量YDAY 的,替换成 变量TDAY
查找文件中,行首为TH的行,查找第21到28个字符的内容等于 变量YDAY的,替换成 变量TDAY
其他位置有字符串等于YDAY的不能被修改
Powered by ddoss.cn 12.0
©2015 - 2025 ddoss
渝公网安备50011302222260号
渝ICP备2024035333号
【实验平台安全承诺书】
小绿叶技术社区,优化网络中,点击查看配置信息
主机监控系统: 安全防火墙已开启检查cc攻击-下载文件完成后等待10s 恢复访问,检查连接数低于峰值恢复访问
您的IP:216.73.216.110,2025-12-01 16:05:47,Processed in 0.01511 second(s).