トップ回答者
全角スペース区切りのテキストファイルをカンマ区切り(CSV)にしたい

質問
回答
-
こんにちは、nagino です。
通常の全角スペースであれば、先述のコマンドで問題ないはずです。
実際提示したサンプルでは動作しているとのことですので、処理したいファイルの方に問題があるのかもしれません。
問題となっているファイルは、どの文字コードで保存されていますでしょうか。
また、全角スペースの前後は制御コードなど入っていませんでしょうか。
一度、文字コードのレベルで全角スペースの前後を確認されたほうがよろしいかと思います。
なお、念のための確認ですが、「タブでは無く全角空白」ということで相違ありませんでしょうか。
一応参考までに、タブの場合は
Get-Content 'アプリケーション ログ.txt' | %{$_ -replace "[\t]", ","}
でカンマに置換できます。
MCITP(Database Developer/Database Administrator)- 回答としてマーク TAKAKUN 2009年7月27日 8:27
すべての返信
-
こんにちは、nagino です。Windows XP SP3 上の PowerShell 1.0 上でですが、以下でいけるようです。Get-Content 'アプリケーション ログ.txt' | %{$_ -replace "[ ]", ","}[ と ] の間は全角スペースです。半角スペースは置換されていなかったので、大丈夫かと思います。ちなみに、以下のようなファイルで試してみました。--ここから-------------あいうえお かきくけこ さしすせそた ち つにゃ にゃ にゃ半角 スペース ですよ ←は全角 です--ここまで-------------
MCITP(Database Developer/Database Administrator) -
ご返事ありがとうございます。
下記のサンプルでは、確かに下記のコマンドで、全角半角の区別を行っているみたいです。
いただいたサンプルでは正しく変換されていました。
Get-Content 'アプリケーション ログ.txt' | %{$_ -replace "[ ]", ","}
--ここから-------------あいうえお かきくけこ さしすせそた ち つにゃ にゃ にゃ半角 スペース ですよ ←は全角 です--ここまで-------------
ただ、アプリケーション ログ.txtでは、変換しませんでした。
XPSP3+powershell1.0と同じ環境のようなんですが。。。。 -
こんにちは、nagino です。
通常の全角スペースであれば、先述のコマンドで問題ないはずです。
実際提示したサンプルでは動作しているとのことですので、処理したいファイルの方に問題があるのかもしれません。
問題となっているファイルは、どの文字コードで保存されていますでしょうか。
また、全角スペースの前後は制御コードなど入っていませんでしょうか。
一度、文字コードのレベルで全角スペースの前後を確認されたほうがよろしいかと思います。
なお、念のための確認ですが、「タブでは無く全角空白」ということで相違ありませんでしょうか。
一応参考までに、タブの場合は
Get-Content 'アプリケーション ログ.txt' | %{$_ -replace "[\t]", ","}
でカンマに置換できます。
MCITP(Database Developer/Database Administrator)- 回答としてマーク TAKAKUN 2009年7月27日 8:27
-