最初の答え:

最初の答え:

次に始まる8つのファイルがあります。SEALS-*

各ファイルにはヘッダーとデータがあります。

#Col_1\Col_2\Col_3\col_4    --- header
\\\\\\\\\\                  --- data 

空の項目の場合は、\オンラインであるこのレコードを削除する必要があります。

答え1

iPerlフラグの使用所定の位置で編集:

$ perl -pi -e '$_ = "" if m{^\\\\}' file.txt

findパイプにエクスポートするには、次のようにしますxargs

$ find . -type f | xargs perl -pi -e '$_ = "" if m{^\\\\}'

findコマンドを使用する場合-exec:

$ find . -type f -exec perl -pi -e '$_ = "" if m{^\\\\}' {} \;

答え2

最初の答え:

すべてのテキスト操作では、Perlは常に良い選択です。

perl -e 'while(<>){print if(!/(\\\\)+/)}' file > file.new

ただし、単にシェルを使用したい場合は、この方法も可能です。

grep -v '\\\\' file > file.new

良い結果:)

編集する:

新しいファイルを作成できない場合でも、Perlは次のことができます。

perl -e 'open FILE_R, "+<$ARGV[0]"; @line=<FILE_R>; open FILE_W,"+>$ARGV[0]"; foreach(@line){print FILE_W if(!/(\\\\)+/);}' file

この長い行を説明しましょう。

open FILE_R, "+<$ARGV[0]"; @line=<FILE_R>;

=>「読み取り」モードでファイルを開き、すべてのデータを配列にコピーします。

open FILE_W,"+>$ARGV[0]"; foreach(@line){print FILE_W if(!/(\\\\)+/);}

=> "書き込み"モードでファイルを開いて切り取り、すべてのデータ(\\行を除く)をファイルに書き込みます。

私はお勧めしますこのツールPerlについてもっと詳しく知りたい場合:)

関連情報