UNIX環境で、
SJISファイルを日本語でgrepしたのですが、
ファイル名が出力されずにうまくいきません。
どなたかご教授願えないでしょうか。
[自分のコマンド]
find ./ -type f -print | xargs nkf -e | grep 'テスト'
とし、日本語は検地できたのですが、
ファイル名が出力されずに困っております。
grep -l としたら、↓のエラーが表示されました。
xargs: nkf: シグナル 13 によって終了しました
サブディレクトリも含めて検地したいのですが、
なにかいい方法ありますでしょうか。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
パイプの最終段が
grep 'テスト'
になっている限り、途中で何をしても無駄。
grepは「標準入力から受け取った行に『テスト』と文字があるかどうか」しか判断しない。
受け取った行が「ファイル名の表示」なのか「ファイルの中身」なのか、そんな事は判らないし、知ったこっちゃない。
もし「ファイル名を表示させたい」なら、grepのパターン式に「ファイル名表示行に一致する検索パターン」も指定しないといけない。
例えば、grepよりも前のコマンドが、ファイル名表示を
File Name : ほげほげ
と言う表示をするのであれば、grepには「『テスト』の他に『File Name : 』で始まる行も出せ」と指示しないといけない。
ありがとうございます。
やはりファイル名を指定しないといけないんですね。
ですが、ファイル名が分からないので、
走せざるを得ないんですが、
ファイル名を一旦取得した、そのファイル名から
grep するしかないですかね。
No.3
- 回答日時:
grepで、ファイルからではなく標準入力から検索しているので、ファイル名が出なくて当り前です。
grepが検索しているのは、xargsコマンドの標準出力であって、特定のファイルではありません。
また、xargsでは、nkf -e に複数のファイルを指定するようなものなので、各ファイル毎という処理には向いていません。
何らかの方法で、ファイル名と出力を結びつける必要があります。
例えば
find . -type f -exec sed 's|^|{}:|' \{\} \; | nkf -e | grep -a 'テスト'
findでファイルを検索→sedで先頭をファイル名に置き換えるたものを標準出力 (findの-execでは{}がファイル名の置き換わる)
→ nkf -e でEUC-JPにしたものを標準出力
→grepで検索
とか。
nkf -e | grep $1 | sed "s|^|$2:|"
をgrep-euc.shとして
find . -type f -exec grep-euc,sh 'テスト' \{\} \;
とするとか
ファイル名に日本語が含まれていると、誤動作するかもしれませんが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux bashでブランク(空白)を検索文字列として指定する方法 1 2022/04/13 22:29
- その他(プログラミング・Web制作) bashのgrepで複数の検索、かつスクリプト内で改行する方法を教えてください。 1 2022/10/06 20:09
- UNIX・Linux テキストファイルをページ番号付きでコマンドラインから印刷したい 1 2023/02/22 12:47
- UNIX・Linux Linuxのbash環境下です。 1 2022/11/27 12:31
- C言語・C++・C# exeファイルが作れない(windows10) 6 2022/08/13 08:47
- その他(メールソフト・メールサービス) メールソフトを教えてください 1 2023/03/28 23:32
- Windows 10 Windows10で、急に「IMEが無効です」となり日本語入力ができなくなりました。 6 2023/02/15 06:46
- PHP 画像ファイルの名前をそのままURLにする 3 2022/10/16 11:18
- Visual Basic(VBA) Excel VBA マクロ ホルダー内にある複数のファイルを規則に従い格納をしたいです 4 2022/11/19 10:58
- Windows 10 renameコマンドでファイル名からアンダースコアを消す方法 5 2023/04/24 13:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA 電話番号の正規表現について
-
プログラマーと学歴の関係性に...
-
vba クリップボードクリアにつ...
-
このURLで広告を出しているのは...
-
ImageMagickでgif画像の一部が...
-
小学1年生の子です。塾に行かせ...
-
プログラミングのPythonのnoteb...
-
GoogleAppsScript文字列置換の...
-
楽しくて最高のプログラミング...
-
ホワイトハッカー
-
プログラミング ソースコード
-
ものづくりに向いているプログ...
-
大学のゼミのレポートがムカつ...
-
スカラーのベクトル微分
-
初心者powershellのPS1ファイル...
-
Google ColaboでGUI作成
-
プログラミングで例えばゲーム...
-
Powershellとコマンドプロンプト
-
MacのPythonでの開発について
-
Latexに関する質問です。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラミング
-
小学1年生の子です。塾に行かせ...
-
vba クリップボードクリアにつ...
-
プログラマーと学歴の関係性に...
-
Webサイト内に埋め込んだmp4動...
-
正規表現で複数マッチ条件で悩...
-
windowsでテキストファイルの各...
-
楽しくて最高のプログラミング...
-
プログラミング ソースコード
-
Pythonって何を意識した言語な...
-
プログラミングを教えたいです...
-
pythonで複数画像からgifを作る...
-
pythonにてseleniumを使うも、...
-
Pythonでgif画像が上手く作れない
-
Google ColaboでGUI作成
-
テキストファイルのファイル名...
-
プログラミング、アーキテクチ...
-
そのまま使っただけなのに・・...
-
このURLで広告を出しているのは...
-
chatGPTで次々と質問をしていく...
おすすめ情報