Estou trabalhando em uma instância WSL (Ubuntu) em uma máquina Windows 10.
Para encontrar alguma informação em um banco de dados, gerei um script contendo toda a estrutura e conteúdo do banco de dados, e esperava que de forma simples grep
pudesse me dizer se alguma informação está presente ou não.
Isso, no entanto, não funcionou, como você pode ver:
WSL_Prompt> grep "S" DB_Local_Backup_20250311.sql
=> Você tá brincando? Não tem nenhuma letra "S" em todo esse banco de dados?
WSL_Prompt> head -5 DB_Local_Backup_20250311.sql
USE [DB_Name]
GO
/****** Object: User [DB_user] Script Date: 11/03/2025 11:32:44 ******/
CREATE USER [DB_user] WITHOUT LOGIN WITH DEFAULT_SCHEMA=[dbo]
GO
=> A letra "S" está presente em quase todos os lugares desse arquivo.
WSL_Prompt> ls -ltra DB_Local_Backup_20250311.sql
-rwxrwxrwx 1 scampsd scampsd 4575828864 Mar 11 11:35 DB_Local_Backup_20250311.sql
=> Ok, admito: o arquivo é bem grande.
WSL_Prompt> grep --version | head -n 1
grep (GNU grep) 3.4
=> aqui está a versão que grep
estou usando.
WSL Prompt> cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.2 LTS (Focal Fossa)"
=> aqui está a versão do WSL que estou usando.
Mais algumas informações:
Tipo de arquivo:
WSL_Prompt> file DB_Local_Backup_20250311.sql
DB_Local_Backup_20250311.sql: Little-endian UTF-16 Unicode text, with CRLF line terminators
Despejo hexadecimal:
WSL_Prompt> head -n 1 DB_Local_Backup_20250311.sql | hd -c
00000000 ff fe 55 00 53 00 45 00 20 00 5b 00 43 00 65 00 |..U.S.E. .[.C.e.|
0000000 U \0 S \0 E \0 \0 [ \0 C \0 e \0
Existe uma solução?