文字セットを除いて、ファイル内のすべての文字を改行文字に置き換えます。

文字セットを除いて、ファイル内のすべての文字を改行文字に置き換えます。

数字と「.」を除くファイル内のすべての文字を削除するには、各単語(数字/ドット)はファイルの新しい行になければなりません。例2を参照してください。

  • 解決策は、sed、awk、またはksh構文を使用することです。

注 - ソリューションは例2に基づいている必要があります。

実施例1

編集前のファイル

  192.0.22.1++0.1
  e32)5.500.5.5*kjcdr
  ##@$1.1.1.1+++jmjh
  1.1.1.1333
  33331.1.1.1
  @5.5.5.??????
  ~3de.ede5.5.5.5
  1.1.1.13444r54
  192.9.30.174
  &&^#%5.5.5.5
  :5.5.5.5@%%^^&*
  :5.5.5.5:
  **22.22.22.22
  172.78.0.1()*5.4.3.277
  3.3.3ki.3.

ファイル例 2 チャーターは、数字と「.」を除くすべての文字を削除した後、各新しい単語が折り返されます。

  192.0.22.1
  0.1
  32 5.500.5.5
  1.1.1.1
  1.1.1.1333
  33331.1.1.1
  5.5.5.
  .
  5.5.5.5
  1.1.1.13444
  54
  192.9.30.174
  5.5.5.5
  5.5.5.5
  5.5.5.5
  22.22.22.22
  172.78.0.1 
  5.4.3.277
  3.3.3 .3.

ベストアンサー1

これは古典ですtrユースケースなので、最も簡単な方法は次のとおりです。

tr -cs '[:digit:].' '[\n*]' < input > output

パラメーターは、[:digit:].一致させる文字(数字と点)を指定します。[\n*]置換する文字を指定します(すべてを改行で置き換えます)。この-cオプションは数字と点を除くすべてが必要なので、最初の引数を反転します。-s2番目の文字列の連続した改行文字を1つに圧縮します。

おすすめ記事