如何使用sed删除文本文件每行的指定字符
如何使用sed删除文本文件每行的指定字符
嘿,我来帮你搞定这个问题!你需要用sed移除每行开头的1,和结尾的,,,这里有两种实用的方法,根据你的需求选就行:
方法一:精准匹配特定字符(推荐)
如果你确定每行开头固定是1,、结尾固定是,,,用这个命令最稳妥:
sed 's/^1,//;s/,,$//' input.txt > output.txt
我给你拆解下每个部分的作用:
s/^1,//:^代表行的开头,这个操作会把行首的1,替换成空(也就是直接删掉)s/,,$//:$代表行的结尾,这个操作会把行尾的,,替换成空- 最后把处理后的内容输出到
output.txt里,如果你想直接修改原文件,Linux系统可以加-i参数:
要是用的是macOS,得写成这样(注意sed -i 's/^1,//;s/,,$//' input.txt-i后面的空字符串):sed -i '' 's/^1,//;s/,,$//' input.txt
方法二:按字符长度截取
如果你只是想删掉每行开头2个字符和结尾2个字符(不管具体是什么内容),可以用这个更通用的命令:
sed 's/^..//;s/..$//' input.txt > output.txt
解释一下:
^..匹配行首的任意两个字符,替换为空就删掉了开头2个字符..$匹配行尾的任意两个字符,替换为空就删掉了结尾2个字符
举个测试例子,拿你给出的一行内容:
1,https://cinesmovies/i/3juj2i,,
经过上面的命令处理后,就会变成:
https://cinesmovies/i/3juj2i
备注:内容来源于stack exchange,提问作者Roxion
相关产品推荐
相关产品推荐

