LinuxForum.Fans
Тема

Как из файла удалить строки короче определенного размера

Автор: valet 7 сообщений 4939 просмотров
#258953

Имеется большой текстовый файл. Хочу удалить из него все строки, длина которых меньше скажем 100 символов.
Никак не могу сообразить как это сделать.

Это реально чем-то выполнить?

#258954

можно на чистом баше:

text
cat SRC_FILE | while read STR; do 
  if [ ${#STR} -ge 100 ]; then
    echo $STR;
  fi;
done > DST_FILE

на sed'е можно как-то так:
sed -rn '/.{100,}/p'

на awk'е тоже должно быть не сложно, но ждите тех, кто его знает...

#258955

Fat-Zer, спасибо, работает.

"Fat-Zer" написал:
на awk'е тоже должно быть не сложно, но ждите тех, кто его знает...
Ну это уже конечно лишнее, sed справляется в считанные секунды.
#258956
"valet" написал:
Ну это уже конечно лишнее, sed справляется в считанные секунды.

секунды - это долго, но если устраивает, то пожалуйста...

#263054

Не хочу создавать новую ветку. Возник обратный вопрос: а как удалить все строки, длина которых больше 100 символов.

#263055

sed -r '/.{100,}/d'

#263059
"valet" написал:
а как удалить все строки, длина которых больше 100 символов.
"Fat-Zer" написал:
sed -r '/.{100,}/d'

Работает! Спасибо.

Войдите или зарегистрируйтесь, чтобы ответить.