linuxsed字符串
㈠ 在linux中 如何用sed将整行替换成给定字符串
sed -e 's/^.*$/string/渣基陆' filename
其中string是你要替换的字符串
以上命令是把如顷所有行锋埋都替换成某个字符串,如果你要只替换某一行,可以在前面加上行号:
sed -e '3s/.*$/string/' ......
㈡ shell :linux sed 批量替换字符串
Linux下批量替换多个文件中的字符串的简单方法。用sed命令可以批量替换多个文件中的字符串。
命令如下:
sed -i "s/原字符串/新字符串/g" grep 原字符串 -rl 所在目录
例如:我要把www目录下的所有文件里的 charset=gb2312 替换为 charset=UTF-8,执行命令:
sed -i "s/charset=gb2312/charset=UTF-8/g" `grep charset=gb2312 -rl /www`
即可。
解释一下:
-i 表示inplace edit,就地修改文件
-r 表示搜索子目录
-l 表示输出匹配的文件名
这个命令组合很强大,要注意备份文件。
㈢ Linux中的sed是什么意思呢,如何使用呢
Sed是一项Linux指令,全称是Stream
EDitor,功能同awk类似,差别在于,sed简单,对列处理的功能要差一些,awk的功能复杂,对列处理的功能比较强大。Sed主要用于自动编辑一个或者多个文件,多用于脚本中对文件的处理。
Sed命令可以对文件进行增加、删除、修改和查找操作,所以学好sed命令是写自动化脚本必须的基础之一。
调用sed命令有两种形式:
sed [options] 'command' file(s)
sed [options] -f scriptfile file(s)
sed命令主要选项
-e command,--expression=command允许多台编辑。
-h,--help打印帮助,并显示bug列表的地址。
-n,--quiet,--silent取消默认输出。
-f,--filer=script-file引导sed脚本文件名。
-V,--version打印版本和版权信息。
命令:
a\在当前行后面加入一行文本。
b label分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾。
c\用新的文本改变本行的文本。
d 从模板块位置删除行。
D 删除模板块的第一行。
i\在当前行上面插入文本。
h拷贝模板块的内容到内存中的缓冲区。
H 追加模板块的内容到内存中的缓冲区。
g 获得内存缓冲区的内容,并替代当前模板块中的文本。
G 获得内存缓冲区的内容,并追加到当前模板块文本的后面。
l 列表不能打印字符的清单。
n 读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。
N 追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行号码。
p 打印模板块的行。
P 打印模板块的第一行。
q 退出Sed。
r file从file中读行。
t labelif分支,从最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。
T label错误分支,从最后一行开始,一旦发生错误或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。
w file写并追加模板块到file末尾。
W file写并追加模板块的第一行到file末尾。
! 表示后面的命令对所有没有被选定的行发生作用。
s/re/string 用string替换正则表达式re。
= 打印当前行号码。
# 把注释扩展到下一个换行符以前。
㈣ linux sed命令替换特定字符之后的字符
1、首先进入到Linux系统,分别创建两个目录vim1、vim2。
㈤ Linux sed 命令详解
sed命令行格式:sed [options] 'command' file(s)
options常用选项:
-n或--quiet或——silent:仅显示script处理后的结果;
-e:以选项中的指定的script来处理输入的文本文件;
-f:以选项中指定的script文件来处理输入的文本文件;
-r∶sed 的动作支援的是延伸型正规表示法的语法;
-i∶直接修改读取的档案内容,而不是由萤幕输出;
-h或--help:显示帮助;
-V或--version:显示版本信息。
Command常用命令:
a:新增,a 的后面可以接字符串,而这些字符串会在新的一行出现(目前的下一行);
c:取代,c 的后面可以接字符串,这些字符串可以取代 n1,n2 之间的行;
d:删除,d 后面通常不接任何字符串;
i:插入,i 的后面可以接字符串,而这些字符串会在新的一行出现(目前的上一行);
p:打印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作;
s:取代,可以直接进行取代的工作,通常与正规表达式搭配使用。
实例说明:
新增操作:a命令
sed '/^bird/a\test' file将test追加到 以bird开头的行后面
删除操作:d命令
sed '/^$/d' file #删除空白行;
sed '2d' file #删除第二行;
sed '2,$d' file #删除第2行到最后一行;
sed '$d' file #删除最后一行;
sed '/^bird/'d file #删除所有开头是bird的行;
插入操作:i命令
sed -i '3i\bird ' bird.conf #在bird.conf文件第3行之前插入bird
替换文本中的字符串:s命令
sed 's/bird/birds/' file #将文本中的bird替换成birds;
sed -i 's/ bird / birds /g' file #将file文件中每一行的第一个bird替换为birds;
㈥ Linux命令之sed-替换字符串
1. sed -i 's/CANCEL_TIME/CANCEL_RECV_TIME/g' csv2drds-TF_B_PAYLOG_D.json
---指定文件替换,将文件中的CANCEL_TIME替换成CANCEL_RECV_TIME;
2. sed -i 's/CANCEL_TIME/CANCEL_RECV_TIME/g' `grep CANCEL_TIME -rl ./*TF_B_PAYLOG_D*.json`
---批量文件替换,递归查找含CANCEL_TIME的文件,将所有文件中的CANCEL_TIME替换成CANCEL_RECV_TIME;
3. sed -i 's/\/tmp\/ditagent\/TF_B_PAYLOG_D.csv/\/vdata\/datapre\/281\/'"$filename"'/g' $jsonname
---带/的字符串替换,将/tmp/ditagent/TF_B_PAYLOG_D.csv替换成/vdata/datapre/281/'"$filename"'
4. sed -i 's/^/beginstring&/g' *.txt
---在所有行首添加字符串;
5. sed -i 's/$/&endstring/g' *.txt
---在所有行末添加字符串
6. sed -i '2s/原字符串/替换字符串/g' *.txt
---替换第2行
7. sed -i '$s/原字符串/替换字符串/g' *.txt
---替换最后一行
8. sed -i '2,5s/原字符串/替换字符串/g' *.txt
---替换2到5行
9. sed -i '2,$s/原字符串/替换字符串/g' *.txt
---替换2到最后一行
10. sed 's/\x80/|/g' test.dat |iconv -f gbk -t utf-8 > testutf8.dat
---把test.dat中的欧元符号替换成竖线,再将文件gbk格式转成utf8
-i选项是直接在文件中替换,不在终端输出;
-r选项是所给的path中的目录递归查找;
-l选项是输出所有匹配到oldstring的文件;
s/表示替换
/g表示全局替换
㈦ Linux使用sed命令添加字符串方法教程
通常在Linux中添加字符串可以用命令实现,有很多种方式,有一种就是在文本的首尾行添加字符串。那么具体怎么使用呢?本文就来介绍一下Linux使用sed命令添加字符串的方法。
用sed命令在行首或行尾添加字符的命令有以下几种:
假设处理的文本为test.file
在每行的头添加字符,比如“HEAD”,命令如下:
sed ‘s/^/HEAD&/g’ test.file
在每行的行尾添加字符,比如“TAIL”,命令如下:
sed ‘s/$/&TAIL/g’ test.file
4.也可以把两条命令和在一起,在test.file的每一行的行头和行尾分别添加字符“HEAD”、“TAIL”,命令:sed ‘/。/{s/^/HEAD&/;s/$/&TAIL/}’ test.file
以上其实都还OK,昨天花太多时间,主要因为被处理的文件是用mysql从数据库提取的结果导出来的,别人给我之后我就直接处理,太脑残了= -我一直有点怀疑之所以结果不对,有可能是windows和linux换行的问题,可是因为对sed不熟,就一直在搞sed。
众所周知(= -),window和linux的回车换行之云云,如果你知道了,跳过这一段,不知道,读一下呗:
Unix系统里,每行结尾只有“《换行》”,即“ ”;Windows系统里面,每行结尾是“《换行》《回 车》”,即“ ”。一个直接后果是,Unix系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在 Unix下打开的话,在每行的结尾可能会多出一个^M符号。
好了,所以我的问题就出在被处理的文件的每行末尾都有^M符号,而这通常是看不出来的。可以用“cat -A test.file”命令查看。因此当我想在行尾添加字符的时候,它总是添加在行首且会覆盖掉原来行首的字符。
补充:系统常用维护技巧
1,在 “开始” 菜单中选择 “控制面板” 选项,打开 “控制面板” 窗口,单击 “管理工具” 链接
2,在打开的 “管理工具” 窗口中双击 “事件查看器” 图标
3, 接着会打开 “事件查看器” 窗口
4,在右侧窗格中的树状目录中选择需要查看的日志类型,如 “事件查看器本地--Win日志--系统日志,在接着在中间的 “系统” 列表中即查看到关于系统的事件日志
5,双击日志名称,可以打开 “事件属性” 对话框,切换到 “常规” 选项卡,可以查看该日志的常规描述信息
6,切换到 “详细信息” 选项卡,可以查看该日志的详细信息
7,打开 “控制面板” 窗口,单击 “操作中心” 链接,打开 “操作中心” 窗口,展开 “维护” 区域
8,单击 “查看可靠性历史记录” 链接,打开 “可靠性监视程序” 主界面,如图所示, 用户可以选择按天或者按周为时间单位来查看系统的稳定性曲线表,如果系统近日没出过什么状况, 那么按周来查看会比较合适。观察图中的曲线可以发现,在某段时间内,系统遇到些问题,可靠性指数曲线呈下降的趋势,并且在这段时间系统遇到了三次问题和一次警告,在下方的列表中可以查看详细的问题信息。
相关阅读:系统故障导致死机怎么解决
1、病毒原因造成电脑频繁死机
由于此类原因造成该故障的现象比较常见,当计算机感染病毒后,主要表现在以下几个方面:
①系统启动时间延长;
②系统启动时自动启动一些不必要的程序;
③无故死机
④屏幕上出现一些乱码。
其表现形式层出不穷,由于篇幅原因就介绍到此,在此需要一并提出的是,倘若因为病毒损坏了一些系统文件,导致系统工作不稳定,我们可以在安全模式下用系统文件检查器对系统文件予以修复。
2、由于某些元件热稳定性不良造成此类故障(具体表现在CPU、电源、内存条、主板)
对此,我们可以让电脑运行一段时间,待其死机后,再用手触摸以上各部件,倘若温度太高则说明该部件可能存在问题,我们可用替换法来诊断。值得注意的是在安装CPU风扇时最好能涂一些散热硅脂,但我在某些组装的电脑上却是很难见其踪影,实践证明,硅脂能降低温度5—10度左右,特别是P Ⅲ 的电脑上,倘若不涂散热硅脂,计算机根本就不能正常工作,曾遇到过一次此类现象。该机主要配置如下:磐英815EP主板、PⅢ733CPU、133外频的128M内存条,当该机组装完后,频繁死机,连Windows系统都不能正常安装,但是更换赛扬533的CPU后,故障排除,怀疑主板或CPU有问题,但更换同型号的主板、CPU后该故障也不能解决。后来由于发现其温度太高,在CPU上涂了一些散热硅脂,故障完全解决。实践证明在赛扬533以上的CPU上必须要涂散热硅脂,否则极有可能引起死机故障。
3、由于各部件接触不良导致计算机频繁死机
此类现象比较常见,特别是在购买一段时间的电脑上。由于各部件大多是靠金手指与主板接触,经过一段时间后其金手指部位会出现氧化现象,在拔下各卡后会发现金手指部位已经泛黄,此时,我们可用橡皮擦来回擦拭其泛黄处来予以清洁。
4、由于硬件之间不兼容造成电脑频繁死机
此类现象常见于显卡与其它部件不兼容或内存条与主板不兼容,例如SIS的显卡,当然其它设备也有可能发生不兼容现象,对此可以将其它不必要的设备如Modem、声卡等设备拆下后予以判断。
5、软件冲突或损坏引起死机
此类故障,一般都会发生在同一点,对此可将该软件卸掉来予以解决。
㈧ linux sed如何添加一行字符串,并且不重复
用sed命令在行首或漏森行尾添加字符的命令有以下几种:
假设处理的文本为test.file
在每行的头添加返渗亩字符,比如"HEAD",命令如下:
sed 's/^/HEAD&/g' test.file
在每行的行尾添加字符,比如“TAIL”,命令如下:
sed 's/$/&TAIL/g' test.file
运行结果如下图:
几点说明:
1."^"代表行喊尺首,"$"代表行尾
2.'s/$/&TAIL/g'中的字符g代表每行出现的字符全部替换,如果想在特定字符处添加,g就有用了,否则只会替换每行第一个,而不继续往后找了
例:
3.如果想导出文件,在命令末尾加"> outfile_name";如果想在原文件上更改,添加选项"-i",如
4.也可以把两条命令和在一起,在test.file的每一行的行头和行尾分别添加字符"HEAD"、“TAIL”,命令:sed '/./{s/^/HEAD&/;s/$/&TAIL/}' test.file
㈨ linux sed 如何替换字符串中的反斜杠\
在字符替换中,可能会遇见引号,“/”等的替换,这时应该注意,sed的命令原型是:
sed -i "s/友弊oldstring/goalstring/g" file
如果一个路径是data/path/abc,现在要将此路径换成一个字符串cde
但是这时跟在s后边的其实是分隔符,用以将oldstring替换成丛灶cde;他可以使用任意字符,这时如果字符串中有“/”,就会发生混乱,在这个时候可以用#当做分隔符,就变成
sed -i "s#abc#cde#g" file
这时如果abc中包含“/”就可以随便替换了;
引号的替换:
需要将引号转义,使用反斜杠“\”,比如替换" '好郑族 'div' ' ",如果需要将它替换成‘div' ;可以使用sed -i s#\"\'\'#\'#g就能替换了。
㈩ linux想用sed命令把一个字符串替换为递增数字,脚本执行一次,数字自动加1, 怎么表示,谢谢
每执行一晌此次宴者迅脚本,a的数值自动加1
#!/嫌咐bin/bash
a=0
b=$(expr $a + 1)
sed -ri "/^a=/s/a=.*/a=$b/" $0