linux命令模式下替换 linux内容替换命令

linux命令行替换文件内容通过你的描述 , 替换命令如下:
1、tr 命令来进行替换
[root@localhost ss1]# tr '111' '2222222'aa.txt
2、sed 命令
[root@localhost ss1]# sed ‘s/wyf/wzw/g’ ./person.txt
这里使用sed 内置命令s 来实现替换功能,并且使用了全局替换标志g 表示替换文件中匹配wyf的所有字符串 。
温馨提示:
1、tr 命令在接文件时比较特殊 , 需要输入重定向符号 “”
2、凡是在文本中出现的“111”均应转换成“222222”,而不是仅仅将单个进行转换,这个要注意 。
3、在使用sed 命令时 , 要注意一下语法格式 , 将要替换的文本“wyf”放在第一个和第二个“/” 之间,将替换后的文本“wzw”放到第二个和第三个“/” 之间 。这个要注意 。
以上就是我的回答,在具体操作时,可能会有出入 , 如有问题可私信关注,我会第一时间来进行回复追答,希望我的回答能帮到你 。
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' `grepCANCEL_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-8testutf8.dat
---把test.dat中的欧元符号替换成竖线,再将文件gbk格式转成utf8
-i选项是直接在文件中替换,不在终端输出;
-r选项是所给的path中的目录递归查找;
-l选项是输出所有匹配到oldstring的文件;
s/表示替换
/g表示全局替换
Linux /r /nCR :Carriage Return,对应ASCII中转义字符\r ,0x0D(asc码是13) 指的是“回车”\r是把光标置于本行行首
LF :Linefeed,对应ASCII中转义字符\n ,0x0A(asc码是10) 指的是“换行”\n是把光标置于下一行的同一列
CRLF:Carriage ReturnLinefeed , \r\n , 0x0D0x0A ,指的是回车换行\r\n把光标置于下一行行首
^M的原因 : ^M 注意要用 CtrlV CtrlM 来输入
Dos、Windows 格式的文件,用 0D 0A (CR LF)作为换行符,而Unix 的则是以0A(LF) 作为换行符.所以dos 底下的文本文件到了unix的话 , 换行符就会多出来一个 0D(CR) 显示为 ^M,在linux中vim中无法显示\r
因为ascii中对应的不是linux中的标准acsii字符,其实其对应的ASCII码十进制形式是: 13 (无显示形式);对应的八进制形式 15 (显示为^M)从二进制层面来理解,即可以删除换行符前面对应的字符字节(我瞎编的 , 应该对的),在字符层面直接删除^M这个字节即可
方法1:
在命令模式下:输入:%s/^M//g 然后,回车即可替换
注,其中”^M”的输入,分别是“Ctrl v”、“Ctrl M”键生成的
方法2:
使用vi打开文本文件
vi dos.txt
命令模式下输入
:set fileformat=unix
:w
方法3:
使用sed 工具
sed ’s/^M//’ filenametmp_filename
方法4:
既然window下的回车符多了‘\r’,那么当然通过删除‘\r’ , 也可以实现:
tr -d ‘\r’
或者:
sed -i 's/\r//' startup.sh
window下默认是 \r\n
linux下是\n
unix下是\r
现在,我们看看本文开头部分的问题 。假设有一个linux下的unix.txt文件,那么,它在文件中的换行标志是:\n, 现在把unix.txt拷贝靠Windows上 , 那好?。?Windows那双犀利的眼神仿佛是在对unix.txt文件说: 别跟我整什么\n, 我只认识文件中的\r\n, 如果你这个unix.txt文件里面有\r\n, 那我就认为是换行符,否则 , 我不认你 。如此一来,Windows压根就找不到unix.txt中的\r\n, 所以,对于Windows而言,压根就没有发现unix.txt有任何换行, 所以 , 我们从Windows上看到的unix.txt文件显示在一行里面 。
Linux rm 命令替换 安装 trash-cli
Trash-Cli 提供了下面这些命令:
例子:
下面,让我们通过一些例子来试验一下 。
和你在文件管理器中看到的一样 。
删除超过 N 天的垃圾文件trash-empty N
例如:删除回收站中超过 10 天的项目
输入 rs 后,询问恢复内容,需要输入文件索引来恢复
参考阅读:
Trash-Cli:Linux 上的命令行回收站工具
Trash-cli : A Commandline Trashcan For Unix-like Systems
Linux 编辑文本命令一、vi编辑器有3种基本工作模式
分别是:命令模式、文本输入模式、和末行模式 。
第一:命令行模式:
该模式是进入vi编辑器后的默认模式 。任何时候,不管用户处于何种模式 , 按下ESC键即可进入命令模式 。在该模式下,用户可以输入vi命令,用户管理自己的文档 。此时从键盘上输入的任何字符都被当作编辑命令来解释 。若输入的字符是合法的vi命令,则vi在接受用户命令之后完成相应的动作 。但需要注意的是,所输入的命令并不回显在屏幕上 。若输入的字符不是vi命令,vi会响铃报警 。
第二:文本输入模式:
在命令模式下输入命令i、附加命令a、打开命令o、修改命令c、取代命令r或替换命令s都可以进入文本输入模式 。在该模式下,用户输入的任何字符都被vi当作文件内容保护起来,并将其显示在屏幕上 。在文本输入过程中,若想回到命令模式下,按ESC键即可 。
第三:末行模式:
末行模式也称ex转义模式 。在命令模式下,用户按“:”键即可进入末行模式下 , 此时vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的说明符,等待用户输入命令 。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等) 。末行命令在执行完后,vi自动回到命令模式 。如果要从命令模式转换到编辑模式,可以键入a或者i 。如果需要从文本模式返回,则按ESC即可 。在命令模式下输入“:”即可切换到末行模式 , 然后输入命令 。
实例演示
首先我们使用命令 vi filename 打开一个文件,这个时候进入到的是命令模式
接下来我们按i,然后键盘随便输入写内容 。
然后按ESC重新进入到命令模式 。
在命令模式的情况下,我们按:,进入到了末行模式 。
我们输入wq!,然后回车,强行保存退出 。
下次我们再打开对应文件(可用less filename命令打开),即可看到内容已经更改 。
补充:
(1)末行模式下:q! 【强制退出不保存】 q【退出不保存】 wq【退出并保存后面也可以加个!】
(2)如果你不想保存直接退出有可以在命令模式下使用“ctrl z”快捷键或者按住“shift”键,输入两个z即可退出 。
更多命令
进入vi的命令:
vi filename :打开或新建文件,并将光标置于第一行首
vin filename :打开文件,并将光标置于第n行首
vifilename :打开文件,并将光标置于最后一行首
vi/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename….filename :打开多个文件 , 依次进行编辑
屏幕翻滚类命令:
Ctrl u:向文件首翻半屏
Ctrl d:向文件尾翻半屏
Ctrl f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部 。
插入文本类命令:
i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行
删除命令:
ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的 , 而X删除光标前的
Ctrl u:删除输入方式下所输入的文本
搜索及替换命令:
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换
撤销回退命令:
u撤销上一步的操作
Ctrl r 恢复上一步被撤销的操作
选项设置:
all:列出所有选项设置情况
term:设置终端类型
ignorance:在搜索中忽略大小写
list:显示制表位(Ctrl I)和行尾标志($)
number:显示行号
report:显示由面向行的命令修改过的数目
terse:显示简短的警告信息
warn:在转到别的文件时若没保存当前文件则显示NO write信息
nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符
nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始
mesg:允许vi显示其他用户用write写到自己终端上的信息
末行模式命令:
:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d :将n1行到n2行之间的内容删除
:w :保存当前文件
:e filename:打开文件filename进行编辑
:x:保存当前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:wq:保存并退出
:!command:执行shell命令command
:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入
:r!command:将命令command的输出结果放到当前行
寄存器操作:
“?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字
“?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母 , n为一个数字
“?nyl:将当前行及其下n个字符保存到寄存器?中 , 其中?为一个字母 , n为一个数字
“?p:取出寄存器?中的内容并将其放到光标位置处 。这里?可以是一个字母,也可以是一个数字
ndd:将当前行及其下共n行文本删除 , 并将所删内容放到1号删除寄存器中 。
linux之文本内容替换命令sedsed简介:流编辑工具,用来对文本进行过滤与替换操作 。
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表示追加指令linux命令模式下替换;
i,insert表示插入指令;
d , delete表示删除指令;
s,substitution表示替换指令 。
sed脚本指令的基本格式是:
[地址,即路径]命令(有些命令仅可以对一行操作,有些可以对多行操作) , 命令也可以用花括号进行组合,使命令序列可以作用于同一个地址 。
address{
command1
command2
command3
}
sed的基本工作方式是:
sed的替换命令s:
1、全局替换 : s/old/new/g ,其中g为全局替换,用于替换所有出现的次数; /如果和正则匹配的内容冲突可以使用其linux命令模式下替换他符号,如 : s@old@new@g
2、标志位
为什么要有多行模式: 配置文件一般有单行出现 , 但也有使用json或XML格式的配置文件,为多行出现 。
多行模式处理命令N、D、P
【linux命令模式下替换 linux内容替换命令】关于linux命令模式下替换和linux内容替换命令的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读