LoginSignup
1
1

More than 5 years have passed since last update.

自分用メモ:Linuxコマンド①

Last updated at Posted at 2018-06-20

先頭の空白を削除するコマンド例
$ sed -e 's/^[ ]*//g' hoge.txt或いは
$ sed 's/^[ \t]*//' hoge.txt

行末の空白を削除するコマンド例
$ sed -e 's/[ \t]*$//' hoge.txt

ファイル全体から目的の行を抜き出す例
class="paging-number"属性のある行をgrepコマンドでフィルタリングする場合
$ cat index.html | grep -E 'class="paging-number"'
<li class="paging-number">1</li>
<li class="paging-number">1 - 20 / 2000</li>

更に下側を抜き出したい場合
$ cat index.html | grep -E 'class="paging-number".*-'1
<li class="paging-number">1 - 20 / 2000</li>

行から目的の文字列を抜き出す例
$ cat gihyo.jp/dp/index.html | grep -E 'class="paging-number".*-'
| sed -E 's@.*/ ([0-9]+).*@\1@'
2
2000
正規表現にマッチした箇所を取り除き残った箇所を抜き出す場合
$ echo '<li class="paging-number">1 - 20 / 2000</li>' | sed -E 's/[^>]*>//g'3
1 - 20 / 2000
特定の文字で区切られた文字列からn番目を抜き出す場合
$ echo '1,foo,bar' | cut -d , -f 2
foo
スペースで桁揃えされた文字列からn番目を抜き出す場合4
$ echo 'PID COMMAND %CPU TIME #TH #WQ #PORT MEM' | awk '{print $4}'
TIME


  1. 「.*」は「>1 」を指すことになるから'class="paging-number">1 -'でもいいってこと 

  2. sedコマンド区切り文字は改行とバックスラッシュを除く任意の文字に変更できる。正規表現中に/(スラッシュ)が登場する場合、バックスラッシュでエスケープしなくていいので可読性が向上する。 

  3. 「0回以上の>ではない文字列に文字>が付く文字列」を空文字に変換 

  4. cutコマンドは区切り文字1文字しか指定できないので、スペースで桁揃えされた文字列のように区切り文字が連続する場合は向いていない。このような場合はスペース限定でawkが使える。 

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1