Удалить все ведущие нули из первого столбца, и если все нули найдены, то сохраняется 1 ноль - PullRequest
0 голосов
/ 25 января 2019

Я хочу удалить начальный ноль из первого столбца, и если все нули найдены в первом столбце, то 1 ноль должен быть сохранен.

00123|a 
00154|b 
00000|c

Выход

123|a 
154|b 
0|c

Ответы [ 3 ]

0 голосов
/ 25 января 2019

Использование awk:

$ awk '
BEGIN { FS=OFS="|" }  # set field separators
{ $1+=0 }             # add a zero to remove leading zeros
1' file               # output

Вывод:

123|a 
154|b 
0|c

Вот тот, который работает для целых чисел:

$ awk '
BEGIN{ FS=OFS="|" }
{ $1=sprintf("%.0f",$1) }  # %.0f will round off decimals
1' file

Вывод:

123|a 
154|b 
0|c
4295229012|0
0 голосов
/ 26 января 2019

Если вы хотите использовать sed:

sed 's/^0*//;s/^|/0|/' infile
0 голосов
/ 25 января 2019

Попробуйте

string="0000123456000" 
echo $((10#$string))
...