[解決済み] DiffコマンドとGrepで "バイナリファイル(標準入力)が一致 "と表示される。
質問
diffコマンドとgrepコマンドを併用して、2つのファイルの差分を求めようとしています。言い換えれば、私は昨日のファイルと今日のファイルを持っています、私は今日のファイルで新しい行を見つける必要があります(すなわち、昨日のファイルにはありませんでした)。
私は、以下のコマンドを使用して、必要な出力をファイル 'diff.TXT' に出力しています。
diff <(sed '1d' 'todayFile.txt' | sort ) <(sed '1d' yesterdayFile.txt | sort ) | grep "^<" >> 'diff.TXT'
これは今日までうまくいっていたのですが、'diff.TXT'が.TXTとして生成されました。
Binary file (standard input) matches
この現象は私のプロード環境では発生しましたが、テスト環境では動作しています。 そこで、テスト環境でのコマンドを分解してデバッグしてみました。
最初のコマンドを2つの部分に分けてみました。
diff <(sed '1d' 'todayFile.txt' | sort ) <(sed '1d' yesterdayFile.txt | sort ) > temp.txt
grep "^<" temp.txt
そして残念なことに、prodで出ていたのと同じエラーが現在test環境でも出ています。
Binary file (standard input) matches
これはとても不思議な感じがします。
テスト環境で、コマンドを分割して試したときに気づいた奇妙なことが一つあります。
file -i temp.txt
バイナリになります。
どなたか、ご協力をお願いします
解決方法を教えてください。
から man grep :
-a, --text
バイナリファイルをテキストのように処理します。-binary-files=textオプションと同等です。
-バイナリファイル=TYPE
ファイルの最初の数バイトがバイナリデータを含んでいることを示す場合、そのファイルのタイプはTYPEであると仮定します。デフォルトでは、TYPEは バイナリであり、通常、grepは1行のメッセージで バイナリファイルにマッチする場合はメッセージなし, マッチしない場合はメッセージなしとなります。もし TYPEがwithout-matchの場合、バイナリファイルにはマッチしないと判断します。 これは-Iオプションと同じです。TYPEがtextの場合、grepはバイナリファイルを処理します。 バイナリファイルをテキストと同じように扱うことができます。 警告: grep --binary-files=text は、バイナリのゴミを出力するかもしれません。 出力がターミナルで、かつ は、その一部をコマンドとして解釈します。
grep
はファイルをスキャンし、読めない文字があれば、ファイルがバイナリであると見なします。追加
-a
スイッチに
grep
を使用すると、ファイルを可読なテキストとして扱うことができます。おそらく、入力ファイルには読めない文字が含まれているのでしょう。
diff <(sed '1d' 'todayFile.txt' | sort ) <(sed '1d' yesterdayFile.txt | sort ) | grep "^<"
とはならない。
comm -13 <(...) <(...)
より速く、よりシンプルに?
関連
-
[解決済み】ssh: ホスト名を解決できなかった [ホスト名]: nodename も servname も提供されないか、不明 [終了].
-
[解決済み】WSL - GEDIT サーバーを開始することができません。接続できませんでした。接続が拒否されました[closed]。
-
[解決済み] "grep -q" のポイントは?
-
[解決済み] svn diffコマンドの使用
-
[解決済み] awk や sed を使って特定の文字を削除する
-
[解決済み] Linux/Ubuntu のセットです。不正なオプション -o pipefail
-
[解決済み] PowerShellで文字数、単語数、行数を数える
-
[解決済み] Tarエラーです。アーカイブ内の予期しないEOF
-
[解決済み] Linux の設定 -- ssmtp: smtp.gmail.com:587 を開くことができません。
-
[解決済み] Colorized grep -- マッチをハイライトしてファイル全体を表示する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 "find: paths must priore expression:" カレントディレクトリのファイルも見つける再帰的検索を指定するには?
-
[解決済み】git clone時に「'https'のリモートヘルパーが見つかりません。
-
[解決済み】PytorchがCUDAは利用できないと言う件
-
[解決済み] Ubuntuにchkconfigをインストールするにはどうしたらいいですか?
-
[解決済み] ls -al 出力列フィールド
-
[解決済み] at&tアセンブリの「push」と「pushq」の違いは何ですか?
-
[解決済み] エラー: gdal がインストールされているのに、R 依存パッケージのインストール中に gdal-config が見つからない
-
[解決済み] Bashを使ったファイルの検索とコピー [重複]。
-
[解決済み] bashの「#$」はどういう意味ですか?
-
[解決済み] VIMでの検索と置換の結果、末尾の文字が表示される