导航:首页 > 程序命令 > 在linux中sed命令

在linux中sed命令

发布时间:2023-08-10 00:01:41

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-替换字符串

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命令(亲测可用)

在生产环境中,往往没有条件给我们去debug排查,更多时候我们是通过日志来看具体的报错日期。
但是日志往往是一直在实时更新,而且记录条数庞大,很难直接定位到错误信息。这个时候,就可以利用sed命令来截取指定时间段内的日志(也是网上大多数博主的做法)。
具体命令如下:

这条命令可以查询2020.10.13号当天9点到9点十分中间的所有的日志信息。
但是这条命令的使用有两个前提(很多网上的博主都没有提到)
第一,日志输出的日期格式是要满足命令中的格式 ,如果不是的话就跟着实际的格式改
第二,输入的日期必须要真实存在!!! ,比如说9点整刚好没有日志输出,那么这条命令就会失效

更加通配的命令可以是这样, 使用 号*

这样无论九点整的时候是否有日志产生,就都可以获取到9点整到现在的所有日志了
使用 > ,将截取到的内容输出到指定的文件中,方便进一步查看

ps:在实际操作中,我们一般会在后面加grep命令做进一步的关键字过滤

④ Linux命令之sed-删除匹配行

1. sed -i '/preSql/d' a.txt

---删除匹配到 preSql的行

2. sed -i '1d' a.txt

---删尺数除第一行

3. sed -i '3~2d' a.txt

---从第三行开始,每隔一行删除

4. sed -i '4,8d' a.txt

---删除从第4行到激困祥第8行

5. sed -i '$d'  明搏a.txt

---删除最后一行

6. sed '/^$/d' a.txt

---删除所有空行

7. sed -i  '/Website Design/,$d' a.txt

---从匹配行到末尾行

8. sed -i  '/Storage/,+2d' a.txt

--- 删除匹配行和之后两行

⑤ linux之文本内容替换命令sed

sed简介:流编辑工具,用来对文本进行过滤与替换操作。

sed流程:sed通过一次仅读取一行内容来对某些指令进行处理后输出。

1、sed通过文件或管道读取文件内容,但sed默认并不直接修改源文件,而是将读入的内容复制到缓冲区中,称之为模式空间。
2、所有的指令操作都是在模式空间找那个进行
3、sed根据相应的指令对模式空间中的内容进行处理并输出结果,默认输出至标准输出(即屏幕上)。

sed基本语法格式:
用法:sed[选项]...{脚本指令}[输入文件]...
选项: -version 显示sed版本
-help :显示帮助文档
-n,-quiet,-silent静默输出,默认情况下,sed程序在所有的脚本指令执行完毕后,将自动打印模式空间中的内容。
-e script允许多个脚本指令被执行
-f script-file从文件中读取脚本指令,对编写自动化脚本程序很实用
-i ,-in-place 该选项直接修改源文件
-l N 该选项指定l指令可以输出的行长度,l指令为输出非打印字符。
-posix 禁用GNU sed扩展功能。
-r 在脚本指令中使用扩展正则表达式。
-s,-separate 默认情况下,sed将把输入的多个文件名作为一个长的连续的输入流。而GNU sed则允许把它们当作单独的文件。
-u,-unbuffered 最低限度的缓存输入与输出
a,append表示追加指令;
i,insert表示插入指令;
d,delete表示删除指令;
s,substitution表示替换指令。
sed脚本指令的基本格式是:
[地址,即路径]命令(有些命令仅可以对一行操作,有些可以对多行操作),命令也可以用花括号进行组合,使命令序列可以作用于同一个地址。
address{
command1
command2
command3
}

sed的基本工作方式是:

sed的替换命令s:

1、全局替换 : s/old/new/g ,其中g为全局替换,用于替换所有出现的次数; /如果和正则匹配的内容冲突可以使用其他符号,如 : s@old@new@g
2、标志位

为什么要有多行模式: 配置文件一般有单行出现,但也有使用json或XML格式的配置文件,为多行出现。
多行模式处理命令N、D、P

⑥ Linux sed 之G、H、g、h使用命令详解

1.把文本第1行读入到内存 模式空间(pattern space),相当于放到流程水线上处理吧
2.把处理好的结果存放到另一个内存空间(hold space)相当于临时的仓库吧
3.输出处理结果,循环处理第2行,覆盖清空(pattern space)、(hold space)至最后一行

由于各种各样的原因,比如用户希望在某个条件下脚本中的某个命令被执行,或者希望模式空间得到保留以便下一次的处理,都有可能使得sed在处理文件的时候不按照正常的流程来进行。这个时候,sed设置了一些高级命令来满足用户的要求。

sed命令:

不管是大写还是小写g、h都是在pattern space、hold space相互拷贝
区别是 小写代表清空原来数据,大写是保留原来数据在后面追加新数据
案例

图解分析过程
P:Pattern Space
H:Hold Space
蓝色:Hold Space中的数据
绿色:Pattern Space中的数据

案例

参考链接:
https://www.cnblogs.com/fhefh/archive/2011/11/22/2259097.html

⑦ Linux中的sed是什么意思呢,简单解释一下啊

Sed是一项Linux指令,全称是Stream
EDitor,功能同awk类似,差别在于,sed简单,对列处理的功能要差一些,awk的功能复杂,对列处理的功能比较强大。Sed主要用于自动编辑一个或者多个文件,多用于脚本中对文件的处理。
Sed命令可以对文件进行增加、删除、修改和查找操作,所以学好sed命令是写自动化脚本必须的基础之一。

⑧ linux sed 替换

Linux sed 命令是利用脚本来处理文本文件。

sed 可依照脚本的指令来处理、编辑文本文件。

Sed 主要用来埋厅自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
语法

参数说明:

regular_express.txt 文件内容如下:

利用 sed 将 regular_express.txt 内每一行结尾若为 . 则换成 !

:q:q

利用 sed 直接在 regular_express.txt 最后一行加入 # This is a test:

由于 $ 代表的是最后一行,而 a 的动作是新增,因此该文件最后新增 # This is a test!

sed 的 -i 选项庆液册可以直接修改文件内容,这功能非常有帮助!举例来说,如果你有一个 100 万行的文件,你要在第 100 行加某些文字誉宏,此时使用 vim 可能会疯掉!因为文件太大了!那怎办?就利用 sed 啊!透过 sed 直接修改/取代的功能,你甚至不需要使用 vim 去修订!
sed -i 常见用法(直接对文本文件进行操作的)
替换掉每行的第一个字符串

替换掉所有的字符串 sed -i 's/原字符串/新字符串/g' file

去掉 “行首” 带“@”的首字母@

特定字符串的行前插入新行

特定字符串的行后插入新行

特定字符串的删除

阅读全文

与在linux中sed命令相关的资料

热点内容
路由器服务器昵称是什么 浏览:713
程序员男友消失了 浏览:395
程序员搜索框自动提示 浏览:22
android44api20 浏览:675
adb刷recovery命令 浏览:695
广联达正版加密锁可以补办吗 浏览:943
java程序员一天多少行代码 浏览:946
丧尸危机java 浏览:123
华为手机怎么去除app标记未读信息 浏览:854
java监控文件夹 浏览:805
群控服务器主机怎么转变普通电脑 浏览:707
手机怎么调整app大小 浏览:455
加密门禁卡揭秘 浏览:138
词释pdf 浏览:992
安卓手机上如何停止自动续费 浏览:881
加密编码摘要 浏览:787
疫情命令党 浏览:497
java转sql 浏览:707
android获取apn 浏览:76
phpfpm进程池 浏览:795