Удалите дополнительный разрыв строки из переменной

Это может быть сделано довольно легко с sed.

Если числа расположены:

12 23 35 67 87

Пример

$ sed 's/\([0-9]\+\)/\1 \1%/g' somefile.txt
12 12% 23 23% 35 35% 67 67% 87 87%

Подробнее

  1. Мы используем sedспособность искать и заменить (s/../../g).
  2. \([0-9]\+\) соответствия любая последовательность чисел (12, 23..). parens вокруг этого сохраняет эти результаты во временной переменной (\1).
  3. Каждый раз, когда мы находим последовательность чисел соответствия, мы заменим ее собой и другой копией себя и знака процента (\1 \1%)

Примечание: Если Вы - версия sed поддержки -r переключатель можно уплотнить вышеупомянутое немного:

$ sed -r 's/([0-9]+)/\1 \1%/g' somefile.txt
12 12% 23 23% 35 35% 67 67% 87 87%

Если они расположены:

12
23
35
67
87

Пример

$ sed -r 's/([0-9]+)/\1 \1%/g' somefile.txt
12 12%
23 23%
35 35%
67 67%
87 87%
2
21.08.2018, 02:30
3 ответа
[116268] Когда вы разделяете содержимое вашего CSV-файла, вы разделяете его запятыми, [116724], [116725]. Это может быть проблематично, потому что второй IP-адрес в этом файле, вероятно, имеет после себя символ новой строки.

Самым простым способом решения этой проблемы было бы просто выжать этот символ из конца переменной [116726]$destIP[116727] следующим образом:

4
27.01.2020, 21:51

echo[116613] обычно ставит новую строку после вывода ее аргументов. Вы можете предотвратить это от этого, используя

, чтобы удалить [116614]$destIP[116615], вы можете попробовать:

2
27.01.2020, 21:51
[116220]Вы можете использовать [116672]tr[116673], чтобы удалить символ новой строки. Вместо [116674]sjain@$destIP[116675] используйте:
2
27.01.2020, 21:51

Теги

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