teratail header banner
teratail header banner
質問するログイン新規登録
sed

sedとは、POSIX環境のために作られたコマンドラインエディタです。sedは編集スクリプトの指示のもとに複数のファイルを編集し、標準出力にその結果を出力します。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Q&A

解決済

1回答

129閲覧

sedでファイルの日本語を変換(マスク)したい。

miraimirai

総合スコア50

sed

sedとは、POSIX環境のために作られたコマンドラインエディタです。sedは編集スクリプトの指示のもとに複数のファイルを編集し、標準出力にその結果を出力します。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

1グッド

0クリップ

投稿2025/07/11 01:33

1

0

実現したいこと

日本語が含まれている複数ファイルを日本語を●でマスクしたい。

発生している問題・分からないこと

端末で実行しているが日本語が●に変換されない

エラーメッセージ

error

1sed: -e expression #1, char 18: Invalid collation character

該当のソースコード

grep -l '[\x80-\xFF]' *.vhd | xargs sed -i.bak -e 's/[\x80-\xFF]/●/g'

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

grepのコマンドが治っていたのを自分で修正しました。sedの正規表現の仕方を調べましたが正解がわかりません。

補足

Ubuntu 24.04.2 LTS

melian👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Unicode プロパティを利用する方法はどうでしょうか。ただし、GNU sed は Unicode プロパティに対応していませんので代用として Perl を使用します。

sh

1$ grep --version 2grep (GNU grep) 3.11 3$ perl --version 4This is perl 5, version 38, subversion 2 (v5.38.2) built for x86_64-linux-gnu-thread-multi 5(with 45 registered patches, see perl -V for more detail) 6 7# 正規表現で Unicode property を利用 8$ grep -l -P '[\p{Han}\p{Hiragana}\p{Katakana}]' *.vhd | xargs perl -C -i.bak -ple 'use utf8;s/[\p{Han}\p{Hiragana}\p{Katakana}]/●/g'

投稿2025/07/11 02:22

melian

総合スコア21294

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

miraimirai

2025/07/11 02:33

回答ありがとうございます。 試したところ問題が解決しました! ベストアンサーに選ばせていただきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問