У мене є команда заміни sed, що я хотів би бути сумісним як з BSD, sedтак і з GNU sed. Розширені регулярні вирази не є проблемою, тому що мені в цьому випадку вони не потрібні. Моя основна проблема полягає в різниці в тому, що два sedінтерпретують послідовності виходу символів у рядках заміни . Мій рядок заміни містить вкладки та нові рядки, і я хотів би, щоб вони були видимими в командних рядках для зручності обслуговування, однак, BSD sedне інтерпретує послідовності виходу, а GNU sed робить . Який відповідний спосіб доручити sedінтерпретувати ці послідовності евакуації на BSD? Наступні два фрагменти уособлюють мою проблему:
GNU sed
echo ABC | sed 's/B/\n\tB\n'
yeilds
A
B
C
BSD sed
echo ABC | sed 's/B\n\tB\n'
врожайність
AntBnC
Зрозуміло, \nі\t BSD не інтерпретується як послідовність втечіsed
Тепер до мого питання. Відповідно до сторінки BSD sed:
Щоб вказати символ рядка в рядку заміни, передуйте його з косою рисою.
Чи означає це, що мені потрібно передувати буквальний новий рядок зворотним нахилом? Який спосіб підказати sedінтерпретувати послідовності втечі, як \nу тексті заміни?
sed. Зрештою, мабуть, буде сенс використовувати awk. Отже, що ви думаєте про інтерпретацію цитованої мною сторінки BSD sed?