linuxshell字符替换
可以这样做:
方法1:sed -i 's/被替换的内容/要替换成的内容/' file
方法2:sed 's/被替换的内容/要替换成的内容/g' file > file.out;mv file.out file。
(1)linuxshell字符替换扩展阅读:
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 linux 命令 替换和写入
cat A|grep "abcdef" >>B
sed -i 's/^.*abcdef/#&/g' A
测试了下,可以
③ shell中字符查找到并替换
用sed 's/姓名/name/g' 年龄也同样
④ SHELL脚本对LINUX下指定文本文件的满足条件的行的特定位置字符串进行替换
YDAY=$(date+"%Y%m%d"-d"-1days")
TDAY=$(date+"%Y%m%d")
awk-vYDAY=$YDAY-vTDAY=$TDAY'
NR==1{
if(substr($0,20,8)==YDAY)
$0=substr($0,1,19)TDAYsubstr($0,28)
if(substr($0,34,8)==YDAY)
$0=substr($0,1,33)TDAYsubstr($0,42)
}
/^TH/{
if(substr($0,21,8)==YDAY)
$0=substr($0,1,20)TDAYsubstr($0,29)
}
{print}'文件名
⑤ linux shell如何将本身是变量字符串日期批量替换
一条语句就够了:
cat 1.txt | sed -r "s/[0-9]{8}/`date -d yesterday +%Y%m%d`/" > 2.txt
⑥ linux,shell脚本程序,查找文件内的ABC字符并替换成123
sed -i 's/ABC/123/g' 文件名
⑦ linux shell 脚本 字符串替换问题
shell脚本中,单引号内的$是不被解释的
perl支持双引号吗?改成双引号试试
⑧ linux shell,替换文本
sed's/(192.168.2.3)d+/12048/'a.txt
替换字符串里面1代表前面第一个括号里面的内容.
d+表示多个连续数字.
⑨ linux 下用shell sed替换文本中的字符串
sed是行编辑器,用这个工具非常困难。可以参考以下脚本:
#!/bin/bash
while
read
line
do
if
echo
$line
|
grep
'Hour$'
>/dev/null;
then
echo
$line
|
tr
-d
'\n'
else
echo
$line
fi
done
<
$1
1,将上面脚本保存为fuck.sh
2,chmod
755
fuck.sh
3,./fuck.sh
file
⑩ linux shell替换最后一个字符
[seesea@UC~]$catfile
acccddd
xxxyzzz
qw
[seesea@UC~]$sed-r's/\([^]*)$/1/'file
acccddd
xxxyzzz
qw
[seesea@UC~]$sed-r's/(.*)\/1/'file
acccddd
xxxyzzz
qw