Micro
Micro

Reputation: 10891

Remove all lines from a file that contain a non-ascii character

I have a file with thousands of lines in it. I would like to search each line for a non-ascii character, and if found, delete that entire line.

I found this bit of code in perl:

perl -i.bak -ne 'print unless(/[^[:ascii:]]/)' file

But I get this error when I run it with my file:

Can't find string terminator "'" anywhere before EOF at -e line 1.

Does anyone have any code for an actual perl script instead of a one liner like the above?

Upvotes: 1

Views: 585

Answers (1)

Miller
Miller

Reputation: 35208

That's a shell error, most likely because you're on a windows machine.

Use double quotes instead of single quotes:

perl -i.bak -ne "print unless(/[^[:ascii:]]/)" file

Upvotes: 3

Related Questions