История изменений
Исправление mord0d, (текущая версия) :
cat 1.txt | sed -i '/[0-9]\+:sss/d' 1.txt
Здесь не нужен cat:
sed -i '/[0-9]\+:sss/d' 1.txt
sed с выводом в консоль и записью в файл одновременно
Чтобы было аккуратно, можно делать так:
sed '/[0-9]\+:sss/d' 1.txt | tee 2.txt && rm 1.txt && mv 2.txt 1.txt
---
UPD:
Но как вывести в консоль (НЕ в файл) эти удаленные строки?
Никак, sed их отбрасывает.
Можно написать комплексную функцию (vodz писал построчный перебор файла, но я задолбаюсь искать по форуму), которая перебирает файл построчно. Нужно только переписать тело цикла, чтобы отбрасываемые строки писались в stdout/stderr, а остальные летели в файл.
Исправление mord0d, :
cat 1.txt | sed -i '/[0-9]\+:sss/d' 1.txt
Здесь не нужен cat:
sed -i '/[0-9]\+:sss/d' 1.txt
sed с выводом в консоль и записью в файл одновременно
Чтобы было аккуратно, можно делать так:
sed '/[0-9]\+:sss/d' 1.txt | tee 2.txt && rm 1.txt && mv 2.txt 1.txt
---
UPD:
Но как вывести в консоль (НЕ в файл) эти удаленные строки?
Никак, sed их отбрасывает.
Исходная версия mord0d, :
cat 1.txt | sed -i '/[0-9]\+:sss/d' 1.txt
Здесь не нужен cat:
sed -i '/[0-9]\+:sss/d' 1.txt
sed с выводом в консоль и записью в файл одновременно
Чтобы было аккуратно, можно делать так:
sed '/[0-9]\+:sss/d' 1.txt | tee 2.txt && rm 1.txt && mv 2.txt 1.txt