Linux替换文本中的字符、删除每行中前几个字符

  • Post author:
  • Post category:linux


学习文章:

删除文件每行中前几个字符


替换


1、将

old.txt



|

替换为

,

,并重定向到

new.txt

。原文件

old.txt

不会改变,产生新的文件

new.txt

sed 's/|/,/g' old.txt > new.txt

2、将

old.txt



||

替换为


(等价于删除文件中的

||

),原文件

old.txt

文本内容发生改变。

sed -i 's/|//g' old.txt


删除每行前几个字符


1、

^.

表示开头1个字符,n个

.

即表示n个字符。

sed -i 's/^..//g' old.txt  #删除每行前2个字符,old.txt发生改变。不生成新文件。

2、正则表达式

sed 's/^.\{10\}//g' old.txt > new.txt #删除old.txt中每行的前10个字符,重定向到new.txt。old.txt不发生改变



tips:

sed -i 's/|/,/g' xxx.txt #添加-i后,命令会修改原文件,且不可重定向或追加 >  >>
cat old.txt > new.txt #将old.txt内容重定向到new.txt中,即复制一个与old.txt内容相同的new.txt文件。
#若原本无new.txt,则自动生成new.txt。若new.txt已存在,则会发生覆盖
cat old.txt >> new.txt # >> 实现追加功能。打印old.txt中内容追加到new.txt。
#若原本无new.txt,则自动生成new.txt。若new.txt已存在,则新内容会追加到文件尾部



版权声明:本文为CNOLZP原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。