bash заменяет первый символ в каждой строке
мой файл выглядит так:
1 chrX_73833098_73834098
1 chrX_73889652_73890652
1 chrX_91194501_91195501
1 chrX_92000157_92001157
1 chrX_92106500_92107500
Я хочу заменить первый символ "1" в 0. Хотел выход :
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
Я считаю, что есть простой способ исправить это, но я этого не знаю.
2 ответов
нет пробела в начале каждой строки.
можно попробовать:
sed 's/^\s*./0/g' file
\s-совпадение символов пробела
выход:
0 chrX_73833098_73834098
0 chrX_73889652_73890652
0 chrX_91194501_91195501
0 chrX_92000157_92001157
0 chrX_92106500_92107500
Если вы хотите сохранить пробелы:
sed 's/^\(\s*\)\(1\)//g' file
Я также заменил здесь . с 1
Я думаю, что это простой способ понять. Попробуйте:
sed 's/1/0/1' file
выход:
1 chrX_73833098_73834098 1 chrX_73889652_73890652 1 chrX_91194501_91195501 1 chrX_92000157_92001157 1 chrX_92106500_92107500
Я хочу сказать, что "S/partten/partten/g", последнее " g " означает место в строке.
"1" означает первое совпадение, " g "означает все, также вы можете использовать "2g", что означает от второго до последнего.
Попробуй.