dak ブログ

python、rubyなどのプログラミング、MySQL、サーバーの設定などの備忘録。レゴの写真も。

grepでキャプチャした文字列にマッチさせる方法

2018-06-28 22:43:24 | ruby
grepでキャプチャした文字列にマッチさせる方法です。

以下のようなファイルで1カラム目と2カラム目が同じ文字列の行を
抽出したい場合には、grep でキャプチャを使った正規表現で
抽出することができます。
$ cat test.txt
123   123
123   456
abc   abc
abc   def

$ cat test.txt | grep -E '^([0-9a-z]+)[[:space:]]+\1'
123   123
abc   abc




pythonでのオブジェクトのリストのソート

2018-06-22 21:24:14 | python
python でオブジェクトのリストをソートする方法をよく忘れるのでメモ。

リスト itmes の要素が辞書(ディクショナリ)で、'score' の値の降順にソートする場合
sorted(items, key=lambda x: x['score'], reverse=True)


mysqlで更新があったレコード数を取得

2018-06-22 21:08:45 | mysql
mysql で更新があったレコード数を取得する方法。

各種言語のライブラリだと、mysql_affected_rows() 的なもので更新が合った行数を取得できますが、
mysql のコマンドラインでは、更新を行った直後に select row_count() を実行します。

以下の様なテーブルを作成。
create table ids (
       id    integer not null,
       primary key(id)
);

insert into ids set id = 1;
insert into ids set id = 2;
insert into ids set id = 3;
insert into ids set id = 4;
insert into ids set id = 5;
insert into ids set id = 6;
insert into ids set id = 7;
insert into ids set id = 8;
insert into ids set id = 9;
insert into ids set id = 10;


変更があった行数を取得。
mysql> delete from ids where id <= 4;
Query OK, 4 rows affected (0.01 sec)

mysql> select row_count();
+-------------+
| row_count() |
+-------------+
|           4 |
+-------------+
1 row in set (0.00 sec)

mysql> delete from ids where id <= 6;
Query OK, 2 rows affected (0.00 sec)

mysql> select row_count();
+-------------+
| row_count() |
+-------------+
|           2 |
+-------------+
1 row in set (0.00 sec)


cmake のメモ

2018-06-05 12:43:47 | linux
cmake を実行する際のメモ。
cmake の対象のディレクトリで
cmake .

と実行してしまうと、対象のディレクトリにいろいろなファイルが作成してしまうため、
mkdir build
cd build
cmake ..

とすると、build ディレクトリにファイルが作成されるので、
どのファイルが新たに作成されたかがわかりやすくなります。


インストール先をデフォルト(/usr/local)から変えたい場合には、
cmake_install.cmake 内の
SET(CMAKE_INSTALL_PREFIX "/usr/local")

を変更すれば、インストール先を変更できます。


また、コンパイラを変えたい場合には
export CC=Cコンパイラのパス
export CXX=C++コンパイラのパス

を実行してから、cmake すれば指定のコンパイラでコンパイルできます。