Если вы хотите добавить www.
и добавить .com
к строкам, считанным из файла web.txt
, и использовать ping
для результирующих строк:
while IFS= read -r company; do
ping "www.$company.com"
done <web.txt
Для таких вопросов рекомендуется вызывать GNU sed в расширенном режиме регулярных выражений (-E ), чтобы лишние обратные косые черты и \{1,\} не мешали читабельности регулярных выражений. Кроме того, мы можем сделать это несколькими вызовами команды s/// после того, как желаемый фрагмент будет перемещаться по одному за раз.
sed -Ee '
s|\.T/[^.]+|\n&\n|
s|(.*)\n(.*)\n|\2,\1|
s|(\.X/[^.]+)+|\n&\n|
s|(.*)\n(.*)\n|\2\1|
' file
П.С.:Предполагая, что начальные пробелы являются опечаткой. Кроме того, ваша первая строка в сценарии с несколькими шаблонами, ваш вывод не соответствует вашему вводу.
Это работает, учитывая пример:
$ sed 's:\([^.]*\)\.\([^.]*\)\.\([^.]*[A-Z]\)\([.X0-9/]*\)\(.*\)$:\4\2,\1.\3.\5:'
Сравним:
# OP's
.X/918875797554.X/918875797550.X/9188757975581.T/IUDFW,991/10/15,SUN.Z/0136/15MAR/KWW/I.G/PLMW/1/SPI.H/XZTK.
.X/918875797557.X/918875797550.X/918875797558.X/918875797559.T/IUDFW,1991/10/15,SUN.Q/0136/15SEP/KWW/I.W/PLMW/1/SPI.H/XZTK.
.X/918875797551.T/BJYE,1991/10/15,SUN.Z/0136/03MAR/KWW/I.L/PLMW/1/SPI.H/XZTK.
# command output
.X/918875797554.X/918875797550.X/918875797558.T/IUDFW,1991/10/15,SUN.Z/0136/15MAR/KWW/I.G/PLMW/1/SPI.H/XZTK.
.X/918875797557.X/918875797550.X/918875797558.X/918875797559.T/IUDFW,1991/10/15,SUN.Q/0136/15SEP/KWW/I.W/PLMW/1/SPI.H/XZTK.
.X/918875797551.T/BJYE,1991/10/15,SUN.Z/0136/03MAR/KWW/I.L/PLMW/1/SPI.H/XZTK.
П.С.:Предполагается, что начальные пробелы являются опечаткой. Кроме того, ваша первая строка в сценарии с несколькими шаблонами, ваш вывод не соответствует вашему вводу.