Grep
Grep 不工作(在某些文件上)?
我有一個 MSSQL 數據庫轉儲,我正在嘗試 grep。但是,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 ...
但是,當我對其進行 grep 操作時,我得到了 nada。
$ cat Documents.sql | grep -i 'alter' $ <nothing> $ cat Documents.sql | grep -i 'go' $ <nothing>
為了咯咯笑,我創建了另一個文件“tempfile”:
$ cat tempfile alter Alter ALTER $
並在其上執行相同的 grep:
$ cat tempfile | grep -i 'alter' alter Alter ALTER
關於為什麼 grep 不適用於某些文件的想法?讓我擔心的是,當我必須通過一堆東西找到一個小塊時,它“可能”會失去一些東西。想法?
啊。謝謝你。
$ 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
我在數據庫轉儲方面遇到了同樣的問題。通過設置編碼使用的另一種解決方案
vi
對我有用。我更喜歡使用
dos2unix
命令,它也很有效。