カンチレバー発掘

ずいぶん前のことです。 彼はコンソールであらゆる種類のスクリプトを作成しましたが、PHPシステムコールではいくつかのスクリプトが必要になる可能性があります。 大規模および非常に大きなテキストファイルに非常に関連します。

1.ファイル内の文字を置き換える
2.ウィンドウのようなハイフネーションの削除
3.高速行カウント
4. CSVのようなファイルから列を切り取る
5.列でファイルを並べ替える
6. iniファイルに基づいてデータベースを解析する

p。4.6 awkで使用します。 誰も知らない場合、これはテキストデータを処理するための特殊なcライクな言語です(ちなみに、非常にphpに似ています)。 非常に高速に動作します。


1) fooファイル内のすべての「e」を「o」に置き換えます。
  sed -i.bak y / e / o / g foo 

-i.bakはfoo.bakという名前のファイルをバックアップします

2)Windows転送(\ n \ r)でファイルをコピーした場合、それらを単に削除する
  col -bx <dosfile> newfile 


3)ファイル内の行数を非常に迅速に計算します(パフィングよりも数百倍高速に動作します)
  wc -lファイル 


4)ファイルからいくつかの列を切り取る
 猫somefile |  awk '{print $ 1 $ 2 $ 4 $ 6;}' 

ここで、CSVファイルの入力では、タブ/スペース区切りのみ。 コンマなどが必要な場合は、追加することで別のセパレータを簡単に追加できます
  awk 'BEGIN {FS = "、"} {print $ 1 $ 2 $ 4 $ 6;}' 

そして、出力はそこから1,2,4,6列です。

5)ファイルfooを列でソートするタスクがある場合、列セパレーターの意味-タブ(パラメーター "-t \ t"):
  sort -t \ t -b -k 1n、3n foo 


6)私は正確に書いていない、覚えていないが、必要に応じて、awkを使用してiniファイルを解析する方法を伝えることができる

Source: https://habr.com/ru/post/J19566/


All Articles