bash 替换每一行中的第一个字符 [英] bash substitute first character in every line
本文介绍了bash 替换每一行中的第一个字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的文件如下所示:
1 chrX_73833098_73834098
1 chrX_73889652_73890652
1 chrX_91194501_91195501
1 chrX_92000157_92001157
1 chrX_92106500_92107500
我想将第一个字符1"替换为 0.想要的输出是:
I want to replace first character "1" into 0. Wanted output is :
0 chrX_73833098_73834098
0 chrX_73889652_73890652
0 chrX_91194501_91195501
0 chrX_92000157_92001157
0 chrX_92106500_92107500
尝试这样做:
sed 's/^./0/g' file
但输出是:
0 1 chrX_73833098_73834098
0 1 chrX_73889652_73890652
0 1 chrX_91194501_91195501
0 1 chrX_92000157_92001157
0 1 chrX_92106500_92107500
我相信有一种简单的方法可以修复它,但我不知道.
I believe there is easy way to fix it, but I don't know it.
推荐答案
每行开头有空格.
你可以试试:
sed 's/^\s*./0/g' file
\s - 匹配空白字符
\s - match white space characters
输出:
0 chrX_73833098_73834098
0 chrX_73889652_73890652
0 chrX_91194501_91195501
0 chrX_92000157_92001157
0 chrX_92106500_92107500
如果你想保留空白字符:
if you want to preserve whitespace characters:
sed 's/^\(\s*\)\(1\)/\10/g' file
我这里也换过.与 1
这篇关于bash 替换每一行中的第一个字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文