Пытаюсь удалить все строки в файле от 1 до n, получаю n через grep: a=`grep -n "string:" file1 | cut -d: -f1`
Далее пытаюсь понять как удалить через sed все строки от 1 до n по типу: sed -i '1,$a d' file1
Как отредактировать это, чтобы работало?
А почему именно через sed? tail -n +10 << my_file
Вернет все строки файла, начиная с десятой.
Только нельзя писать в тот же файл, откуда читаете, иначе получите путой файл.
Вот можно так:
vladragone, там нет никаких типов, только строки.
Выполните: tail -n +3 << temp
Будет ошибка? Есди да, то публикуйте примеры файлов, на которых так вот у вас все не работает. А то гадай тут что у вас там не так. На моих примерах всё отлично сработало:
$ py "range(10)" > f
$ tail -n +$(grep -n "3" f | cut -d: -f1) f
3
4
5
6
7
8
9
Вместо file.txt можно *.txt и тд, для массовой обработки.
-i перезапишет файл(ы).
Без него информация выведется в терминале, без перезаписи файла. Т.е. можно сначала посмотреть, как сработает команда, потом применить с -i.