Я пытался использовать sed
для замены SELECT
на BELECT
в файле:
sed 's/SELECT/BELECT/g' add_pixel.sql | diff - add_pixel.sql
Дает мне:
22c22
< BELECT MAX(ID) INTO max_id FROM pixels;
---
> SELECT MAX(ID) INTO max_id FROM pixels;
36c36
< '(BELECT id FROM pixels WHERE pixel_id=''', new_pixel_id,
---
> '(SELECT id FROM pixels WHERE pixel_id=''', new_pixel_id,
47c47
< DELIMITER ;
---
> DELIMITER ;
\ No newline at end of file
Это было подтверждено wc
- поле после sed
на одну строку короче оригинала.
Почему sed 's/SELECT/BELECT/g'
удалил символ новой строки из последней строки файла?
Это твой файл sql, в котором отсутствует символ новой строки. sed
был «хорош» и удостоверился, что его вывод имеет завершающий перевод строки.
$ diff <(printf 'x') <(printf 'x\n')
1c1
< x
\ No newline at end of file
---
> x
$ diff <(printf 'x\n') <(printf 'x')
1c1
< x
---
> x
\ No newline at end of file
Обратите внимание, как располагается строка «\ No newline ...» в соответствии с тем, в каком файле ее не было.