「テキスト処理」の版間の差分

提供: Wikinote
移動: 案内検索
(文字単位で逆順に出力)
行22: 行22:
 
面倒なので、先頭の 0 も許す。
 
面倒なので、先頭の 0 も許す。
 
  $ egrep -o '([0-9]{1,3}\.){3}[0-9]{1,3}' FILE
 
  $ egrep -o '([0-9]{1,3}\.){3}[0-9]{1,3}' FILE
 +
 +
=== URL 的なもの抽出 ===
 +
使える記号は適当に。
 +
$ egrep -o '[a-z]+://[a-z:;/._!?~%#&=+-]+'
  
 
=== 文字単位で逆順に出力 ===
 
=== 文字単位で逆順に出力 ===
行30: 行34:
 
@ はファイル中に出現していない文字に置き換えること。
 
@ はファイル中に出現していない文字に置き換えること。
 
要するに、ファイル中のすべての文字を区切り文字として逆転させている。
 
要するに、ファイル中のすべての文字を区切り文字として逆転させている。
 +
 +
=== URL にリンクをはる ===
 +
 +
$ sed -e "s$¥(^¥|[^¥"']¥)¥(https¥?¥|ftp¥)¥(://[A-Za-z0-9:;/._!?~%#&=+-]¥+¥)$¥1<a href=¥"¥2¥3¥">¥2¥3</a>$" FILE

2009年6月17日 (水) 00:28時点における版

以下のページも参照のこと。


一行野郎

最長行の長さを求める

AWK のマニュアルにも載っている、基礎的な一行。

$ awk '{ if (max > length()) max = length() } END { print max }' FILE

テキストファイルを横に連結

これは paste コマンドを知っているかどうか。

$ paste FILE1 FILE2

頻出コマンド Top 10

ぜんぜん役には立たないが、パイプの真骨頂が味わえる、趣き深い一行。

$ history | awk '{ print $2 }' | sort | uniq -c | sort -nr | head -n 10

IP アドレス的なもの抽出

面倒なので、先頭の 0 も許す。

$ egrep -o '([0-9]{1,3}\.){3}[0-9]{1,3}' FILE

URL 的なもの抽出

使える記号は適当に。

$ egrep -o '[a-z]+://[a-z:;/._!?~%#&=+-]+'

文字単位で逆順に出力

行単位で逆順に出力する場合は、cat の反対である

$ tac FILE

でよいが、これじゃあ生ぬるい (何が)。文字単位で逆転させようじゃないか。

$ tac -rs '[^@]' FILE

@ はファイル中に出現していない文字に置き換えること。 要するに、ファイル中のすべての文字を区切り文字として逆転させている。

URL にリンクをはる

$ sed -e "s$¥(^¥|[^¥"']¥)¥(https¥?¥|ftp¥)¥(://[A-Za-z0-9:;/._!?~%#&=+-]¥+¥)$¥1<a href=¥"¥2¥3¥">¥2¥3</a>$" FILE