У меня есть текстовый файл, очень похожий на этот:

    JACK     BLACK 123456   -1245368 - 
 BRIDGET       RED   1245     548425 + 
  JOHNNY    HOMUSS  55482      -4325 - 

Я хотел использовать sed команды , чтобы заменить символ - с пустым ' ' один в разделе последнего номера, некоторые мои выход будет:

    JACK     BLACK 123456    1245368 - 
 BRIDGET       RED   1245     548425 + 
  JOHNNY    HOMUSS  55482       4325 - 

Я использую это одно, но, конечно , не работает, потому что он заменяет все - символы в текстовом файле:

sed -e 's/-/ /g' old.out > new.out

это возможно?

1 ответ1

2

Если ваши данные в основном похожи по формату, то есть только последний столбец, содержащий цифры, может содержать - , тогда вы можете просто удалить g из выражения sed :

sed 's/-/ /g' old.out > new.out

Если вы хотите удалить - из всех чисел в файле, вы можете проверить, если - сопровождается цифрой:

sed 's/-\([0-9]\)/ \1/' old.out > new.out

Если вы хотите удалить - из последнего столбца, который содержит цифру, вы можете сказать:

sed 's/-\([0-9]\{1,\}\)\([^0-9]*\)$/ \1\2/' old.out > new.out

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .