C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

テキストファイル 任意の行だけ削除したい

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■92188 / inTopicNo.1)  テキストファイル 任意の行だけ削除したい
  
□投稿者/ mmwan (1回)-(2019/08/30(Fri) 16:53:50)

分類:[.NET 全般] 

「こんにちは。

僕の名前は・・・




金太郎です。


よろしく。」

このようなテキストがあります。3〜6行目はブランクの行です。
特定の行のみ改行を削除したいのですが、どうしたらいいでしょうか?

(gc file.txt) | ? {$_.trim() -ne "" } | set-content file.txt

このようにすると、ブランク行以外を取得することはできるのはわかります。
ただ、消したくもない行もあるので、何行目から何行目までを削除する、
もしくは無視するといった方法をお教え頂けないでしょうか?

PowerShell 6.0を使用しています。

引用返信 編集キー/
■92190 / inTopicNo.2)  Re[1]: テキストファイル 任意の行だけ削除したい
□投稿者/ Hongliang (883回)-(2019/08/30(Fri) 18:06:03)
行番号でフィルタリングするなら、
(gc file.txt)[(0,2,(7..9) | %{$_})] | ? 以下略
とか。(行番号は0オリジン)

// ただし1万行とか行く場合は素直にforeachした方が良いかも。
引用返信 編集キー/
■92191 / inTopicNo.3)  Re[2]: テキストファイル 任意の行だけ削除したい
□投稿者/ Hongliang (884回)-(2019/08/30(Fri) 18:16:59)
2019/08/30(Fri) 18:17:56 編集(投稿者)
あれ、これは要望とはかなり違いますね。
こうかな。
# 4~7行目以外の行、または(4~7行目の)空白行以外を出力する
$i = 0; gc file.txt | %{@{Line=$_;Index=$i++}} |
  ?{$_.Index -notin 3..6 -or $_.Line.Trim() -ne ""} |
  %{$_.Line} | sc file.txt

引用返信 編集キー/
■92213 / inTopicNo.4)  Re[3]: テキストファイル 任意の行だけ削除したい
□投稿者/ mmwan (2回)-(2019/09/02(Mon) 13:07:09)
ありがとうございます、無事にできました!
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ