Как удалить точку и число только в одном столбце?

Вы должны убедиться, что экранируете все непечатаемые -символы.

Хорошо

PS1="\[\e[36m\]\W ⇨ \[\e[m\] "

Плохо

PS1="\[\e[36m\]\W ⇨ [\e[m\] "
1
29.10.2019, 19:43
3 ответа

Вы можете использовать приведенную ниже команду, если последним символом может быть цифра, алфавит или любой символ после точки(.).

sed "s/\..$//g" filename

awk '{gsub(/\..*/,"",$NF);print $0}' filename

Питон

#!/usr/bin/python
import re
k=re.compile(r'\..')
m=open('i.txt','r')
for i in m:
    p=re.sub(k,"",i)
    print p,
0
27.01.2020, 23:14

Вы хотите изменить только последнее поле, поэтому используйте инструмент, который может работать с полями, например awk. В awkпеременная $NFявляется последним полем, поэтому вы можете сделать:

awk '{sub(/\..*/,"",$NF)}1' l4 > l4_clean
2
27.01.2020, 23:14

Просто примените более конкретный шаблон регулярного выражения (для сопоставления чисел/цифр):

sed 's/\.[0-9]*$//' l4 > l4_clean
4
27.01.2020, 23:14

Теги

Похожие вопросы