user2334436
user2334436

Reputation: 939

remove all empty lines from text files while keeping format

I have multiple notepad text files which contains one empty line (the last line of each file). I want to delete the empty line form all files. I tried different grep and awk lines but they didn't work plus they messed up the file format; all text are shown on one line instead of separate line. i also tried with notepad++ regex to find ^\s*$ and replace it with nothing, but it also didn't work.

Current text file looks like this:

apples
oranges
peaches
[empty line]

The output should be

apples
oranges
peaches

Upvotes: 1

Views: 791

Answers (3)

glenn jackman
glenn jackman

Reputation: 246837

The "empty last line" may be a matter of interpretation. From the wikipedia "Newline" article:

Two ways to view newlines, both of which are self-consistent, are that newlines either separate lines or that they terminate lines. If a newline is considered a separator, there will be no newline after the last line of a file. Some programs have problems processing the last line of a file if it is not terminated by a newline. On the other hand, programs that expect newline to be used as a separator will interpret a final newline as starting a new (empty) line. Conversely, if a newline is considered a terminator, all text lines including the last are expected to be terminated by a newline. If the final character sequence in a text file is not a newline, the final line of the file may be considered to be an improper or incomplete text line, or the file may be considered to be improperly truncated.

In my little world, the Visual Studio Code editor takes the former view; vim the latter.

Upvotes: 0

William Pursell
William Pursell

Reputation: 212258

If you want to delete the last line of the file, use sed '$d'. If you want to do that only when the last line is empty, use sed '${/^$/d;}' (This treats a line with some whitespace as a non-blank line, so you might prefer sed '${/^ *$/d;}' or some variant.

Upvotes: 0

Toto
Toto

Reputation: 91430

  • Ctrl+H
  • Find what: \R^$
  • Replace with: LEAVE EMPTY
  • check Wrap around
  • check Regular expression
  • Replace all

Explanation:

\R      : any kind of linebreak
^       : begining of line
$       : end of line

Result for given example:

apples
oranges
peaches

Upvotes: 1

Related Questions