Вопрос Как удалить пробел из строки specificc?


Скажем, у меня есть файл, структурированный так:

X-последовательность 1 - это

ABCDE FGH HIJ

X-последовательность 2 - это

ABCDE FGH HIJ

Как я могу условно удалить пробелы? Я знаю, что нижеприведенный снимок удалит все пробелы. Как я могу удалить пробелы только в строках, начинающихся с X?

sed 's/ //g' 

Я также видел

 '/^startswith

были использованы, но, похоже, не могут связать их вместе, чтобы работать.

Благодарю.


3
2018-03-02 11:24


происхождения




ответы:


В AWK, общий синтаксис - это адрес, за которым следует блок кода, где «адрес» - это номер строки или /regex/ или разделенный запятыми from,to ассортимент.

Поэтому, если вы хотите сопоставить строки, начинающиеся с X, и применить к ним подстановку:

/^X/ { gsub(/ /, ""); } { print; }

(2-й блок не имеет адресности, поэтому он печатает все строки.)

СЕПГ синтаксис аналогичен, за исключением того, что команды короче (s/…/…/ для подстановки), а блоки с одним командом не нуждаются в фигурных скобках. Таким образом, одна и та же задача может быть выполнена в sed, используя:

/^X/ { s/ //g; }

или короче

/^X/ s/ //g

(Sed также не нуждается в явном блоке «print», так как печать уже по умолчанию там, если не указано значение «n». делает иметь команду печати p.)


3
2018-03-02 11:26



Отлично. Я делал подобное, но чрезмерно усложнял его и добавлял барахло позже. Спасибо за помощь. - TW93