Вопрос 1
Это будет напечатано только в том случае, если будет определено [113542]2[113543]. Это более короткий способ написания:
Вопрос 2
Не нужно ничего добавлять, что еще не было рассмотрено.[113093].
Попробуйте:
$ echo "IBM, Inc.:APP-VM-Core:4.4.2.0:04," | sed '/^ *IBM/s/,//'
IBM Inc.:APP-VM-Core:4.4.2.0:04,
или:
$ echo "IBM, Inc.:APP-VM-Core:4.4.2.0:04," | sed 's/^\( *IBM\),/\1/'
IBM Inc.:APP-VM-Core:4.4.2.0:04,
Если вы пытаетесь изменить файл, вы предпочитаете использовать ex
или ed
, но определенно не sed
. Почему бы не sed
?
sed
- это S
tream ED
itor, и вы бы изменили данные, поступающие из потока вместе с ним.
Используя ex
можно сделать следующий
ex -sc '%s/IBM,/IBM/g|x' файл
, в котором файл
является именем вашего файла.
В качестве альтернативы. Если вы хотите удалить ведущие пробелы или вкладки, вам понадобится больше, чем ^ *
. Например. Решением будет использование awk
следующим образом:
awk '{sub(/^[ \t]+IBM,/,"IBM");};1' input_file > output_file
или
awk '{sub(/^[[:blank:]]*IBM,/,"IBM");};1' input_file > output_file
Mind you. ^ *
не сможет обнаружить закладки ^.
Также можно использовать ex
, как объяснялось ранее, но теперь включив регулярное выражение для соответствия только строке, начинающейся с пробелов, и включив шаблон IBM
ex -sc '%s/^[[:blank:]]*IBM,/IBM/g|x' input_file