Grep 不工作(在某些文件上)?

djn*_*ely 6 grep

我有一个 MSSQL 数据库转储,我正试图通过。但是,grep 似乎根本不起作用。这是文件的一个片段。

...
    ALTER DATABASE [Documents] SET RECURSIVE_TRIGGERS OFF
    GO
    ALTER DATABASE [Documents] SET  DISABLE_BROKER
    GO
    ALTER DATABASE [Documents] SET AUTO_UPDATE_STATISTICS_ASYNC OFF
...
Run Code Online (Sandbox Code Playgroud)

但是,当我对其进行 grep 时,我得到了 nada。

$ cat Documents.sql | grep -i 'alter'
$ <nothing>
$ cat Documents.sql | grep -i 'go'
$ <nothing>
Run Code Online (Sandbox Code Playgroud)

对于咯咯的笑声,我创建了另一个文件“临时文件”:

$ cat tempfile 
alter

Alter

ALTER
$
Run Code Online (Sandbox Code Playgroud)

并在其上运行相同的 grep:

$ cat tempfile | grep -i 'alter'
alter
Alter
ALTER
Run Code Online (Sandbox Code Playgroud)

关于为什么 grep 对某些文件不起作用的想法?让我担心的是,当我不得不通过一堆东西来寻找一个小金块时,它“可能”丢失了一些东西。想法?

djn*_*ely 7

啊。谢谢你。

$ file -bi Documents.txt
text/plain; charset=utf-16le
$ vi Documents.txt

set encoding=utf-8
set fileencoding=utf-8

$ file -bi Documents.txt
text/plain; charset=utf-8
$ cat Documents.txt | grep -i 'alter'
ALTER DATABASE [Documents] SET COMPATIBILITY_LEVEL = 120
ALTER DATABASE [Documents] SET ANSI_NULL_DEFAULT OFF 
ALTER DATABASE [Documents] SET ANSI_NULLS OFF 
ALTER DATABASE [Documents] SET ANSI_PADDING OFF
Run Code Online (Sandbox Code Playgroud)