shellで重複行の件数を調べるワンライナー
expr $(cat <対象ファイル> | sort | wc -l) - $(cat <対象ファイル> | sort | uniq | wc -l)
<対象ファイル>部分を置き換えて使う。
やってることは単純、expr (ファイルの内容をソートして行数をカウントしたもの) - (ファイルの内容をソートして重複行を省いた行数をカウントしたもの)
expr $(cat <対象ファイル> | sort | wc -l) - $(cat <対象ファイル> | sort | uniq | wc -l)
<対象ファイル>部分を置き換えて使う。
やってることは単純、expr (ファイルの内容をソートして行数をカウントしたもの) - (ファイルの内容をソートして重複行を省いた行数をカウントしたもの)
rustでツールを作成したので、簡単にインストールしてもらえるように公開だ! と、思ったものの初めてでいきなりcrates.ioに公開するのは、怖いのでローカルにレジストリを作成して一旦そこに対して公開してみるっていうのをやってみました。
/var/spool/cron/ディレクトリ配下にユーザー名のファイルがあるのでそれが、それぞれのユーザーの設定しているcronです。
ls /var/spool/cron/
root user1 user2
などと表示される
OCamlではデータ型ごとに別の演算子が定義されているので(二項演算だけでなく単行演算も)他のプログラミング言語のようにfloat型の数値の符号を反転させるときもちょっと注意が必要
^(?<!\n)
ファイルの先頭は行頭(^)に対して否定後読みを利用して、「2行目以降の行頭を除外した行頭」を検索することで実現
$(?!\n)
ファイルの末尾は行末($)に対して否定先読みを利用して、「次に改行が続かない行末」を検索することで実現。
#!/bin/bash
untar_by_file_type() {
if [[ "$1" == "application/x-tar" ]]; then
tar -xvf "$2"
elif [[ "$1" == "application/gzip" ]]; then
tar -zxvf "$2"
elif [[ "$1" == "application/x-xz" ]]; then
tar -Jxvf "$2"
elif [[ "$1" == "application/zstd" ]]; then
tar --use-compress-program unzstd -xvf "$2"
fi
}
untar() {
if [[ "$1" == "" ]]; then
echo "usage: untar <archive-filename>"
exit 1
fi
untar_by_file_type "$(file -b --mime-type "$1")" "$1"
}
untar "$@"
パスの通ってるところに置くか、~/.zshrc やら ~/.bash_profileやらに関数を追記
Android+kotlin インストールしてあるアプリのパッケージ名の取得
val pm = packageManager
val packageInfoList =
pm.getInstalledPackages(PackageManager.GET_ACTIVITIES or PackageManager.GET_SERVICES)
for (packageInfo in packageInfoList) {
val pkg = pm.getLaunchIntentForPackage(packageInfo.packageName)
if (pkg != null) {
val packageName = packageInfo.packageName
val className = pkg.component?.className ?: ""
Timber.i(packageName)
Timber.i(className)
} else {
Timber.i(packageInfo.packageName)
}
}
JAN-13とインジケータからGTIN-14を計算する関数
| A | B | C | D | |
|---|---|---|---|---|
| 1 | インジケータ | JAN-13 | GTIN-14 | |
| 2 | 1 | 4549414003260 | =CONCATENATE(TEXT(B2, “0”), LEFT(TEXT(C2, “0000000000000”), 12), TEXT(10 - MOD(SUM(VALUE(MID(C2, 1, 1)), VALUE(MID(C2, 3, 1)), VALUE(MID(C2, 5, 1)), VALUE(MID(C2, 7, 1)), VALUE(MID(C2, 9, 1)), VALUE(MID(C2, 11, 1)))+SUM(B2, VALUE(MID(C2, 2, 1)), VALUE(MID(C2, 4, 1)), VALUE(MID(C2, 6, 1)), VALUE(MID(C2, 8, 1)), VALUE(MID(C2, 10, 1)), VALUE(MID(C2, 12, 1)))*3, 10), “0”)) |
複数のdockerコンテナを管理できる docker-compose コマンドですが、コンテナにファイルをコピーしようとdocker-compose cpをやろうとしてもそんなコマンドないよと言われてしまいます。
なのでその代わりに使える方法のメモ。
NASの容量を圧迫していたwavファイルが結構あったのでそいつらをまとめてflacに変換したいなぁと思ったので、ディレクトリ内のwavファイルをffmpegでまとめてflacに変換する方法のメモ。