
Как заменить строку ниже \/
на |
:
bssapi_6 0\/0\/0\/9\/9
bssapi_6 0|0|0|9|9
решение1
При щедром применении побега:
sed 's/\\\//|/g' < inputfile
Сделаем его более читабельным, используя @
в качестве разделителя:
sed 's@\\/@|@g' < inputfile
решение2
Или:
sed 's/\\\//|/g' your_file
или, используя _
в качестве разделителя шаблона, чтобы нам не нужно было экранировать /
:
sed 's_\\/_|_g' your_file
решение3
С использованием awk
:
для файлаinput
$ cat input
bssapi_6 0\/0\/0\/9\/9
Подойдет следующее:
awk '{gsub(/\\\//,"|"); }1' input
Поскольку мы хотим заменить \/
на |
, здесь \
и /
экранируются как \\
и \/
соответственно. Поэтому регулярное выражение — \\\/
.