カテゴリー
【Awkでデータ解析のすゝめ】CSVで重複なしのユニークなリストを作る/検索結果から重複を取り除く
※ 当ページには【広告/PR】を含む場合があります。
2022/08/08
2022/09/30
CSVファイルの重複をなくし、ユニークな行データにする
1319,日経300F,東証
1390,ETFアジア太平洋株,東証
1391,ETFスイス株,東証
1419,タマホーム,東証P
1419,タマホーム,東証P
1580,日経平均ベア,東証
1674,ETFS白金,東証
1770,藤田エンジ,東証S
1826,佐田建,東証S
1835,東鉄工,東証P
1770,藤田エンジ,東証S
2032,ハンセンベア,東証
2109,三井糖,東証P
2838,米国国債投信(ヘッジなし),東証
2136,ヒップ,東証S
2433,博報堂DY,東証P
2032,ハンセンベア,東証
2109,三井糖,東証P
2648,ブルームバーグ米国債(為替ヘッジあり),東証
2838,米国国債投信(ヘッジなし),東証
2904,一正蒲鉾,東証P
3063,ジェイグループ,東証G
3261,グランディ,東証G
3261,グランディ,東証G
3329,東和フード,東証S
3492,タカラレーペン,東証
3865,北越コーポ,東証P
3492,タカラレーペン,東証
3063,ジェイグループ,東証G
4428,リンク,東証G
4031,チッカリン,東証S
4428,リンク,東証G
4544,HUグループ,東証P
4832,JFEシス,東証S
4928,ノエビアH,東証P
5020,JXホール,東証P
4544,HUグループ,東証P
5194,相模ゴ,東証S
5757,サンエツ,東証P
4544,HUグループ,東証P
6200,インソース,東証P
6474,不二越,東証P
6958,日本CMK,東証P
7226,極東開発,東証P
7559,ジーエフシー,東証S
8093,極東貿易,東証P
8801,三井不,東証P
8093,極東貿易,東証P
6200,インソース,東証P
9240,デリバリーコンサル,東証G
9533,邦ガス,東証P
9735,セコム,東証P
9533,邦ガス,東証P
9984,ソフトバンク,東証P
$ awk -F"," '!col[$1]++{ print $0 }' stocks.csv | \
sort -k 1 -t ','
#👇出力結果
1319,日経300F,東証
1390,ETFアジア太平洋株,東証
1391,ETFスイス株,東証
1419,タマホーム,東証P
1580,日経平均ベア,東証
1674,ETFS白金,東証
1770,藤田エンジ,東証S
1826,佐田建,東証S
1835,東鉄工,東証P
2032,ハンセンベア,東証
2109,三井糖,東証P
2136,ヒップ,東証S
2433,博報堂DY,東証P
2648,ブルームバーグ米国債(為替ヘッジあり),東証
2838,米国国債投信(ヘッジなし),東証
2904,一正蒲鉾,東証P
3063,ジェイグループ,東証G
3261,グランディ,東証G
3329,東和フード,東証S
3492,タカラレーペン,東証
3865,北越コーポ,東証P
4031,チッカリン,東証S
4428,リンク,東証G
4544,HUグループ,東証P
4832,JFEシス,東証S
4928,ノエビアH,東証P
5020,JXホール,東証P
5194,相模ゴ,東証S
5757,サンエツ,東証P
6200,インソース,東証P
6474,不二越,東証P
6958,日本CMK,東証P
7226,極東開発,東証P
7559,ジーエフシー,東証S
8093,極東貿易,東証P
8801,三井不,東証P
9240,デリバリーコンサル,東証G
9533,邦ガス,東証P
9735,セコム,東証P
9984,ソフトバンク,東証P
CSVデータの行検索の結果から重複を取り除く
#!/bin/bash
usage_exit() {
echo "USAGE: $(basename $0) [-k key] [-h help] [input_file]" 1>&2
exit 1
}
noarg_err() {
echo "ERROR: must provide key!" 1>&2
exit 1
}
noinputfile_err() {
echo "ERROR: not allowed input file to be empty!" 1>&2
exit 1
}
while getopts k: OPT; do
case $OPT in
k ) KEY="$OPTARG"
;;
\? ) usage_exit
;;
esac
done
shift $((OPTIND - 1))
if [ -z "$KEY" ]; then
noarg_err
fi
if [ -z "$1" ]; then
noinputfile_err
fi
echo "FILE: $1, KEY: ${KEY}"
awk -F"," '
$1~/'"${KEY}"'/ && !col[$1]++ { print $0 }
' $1
44
$ chmod +x stock_finder.sh
$ ./stock_finder.sh -k 44 stocks.csv
#👇以下、重複なしの検索結果を表示
FILE: stocks.csv, KEY: 44
4428,リンク,東証G
4544,HUグループ,東証P
$1~/'"${KEY}"'/ && !col[$1]++
KEY
記事を書いた人
ナンデモ系エンジニア
主にAngularでフロントエンド開発することが多いです。 開発環境はLinuxメインで進めているので、シェルコマンドも多用しております。 コツコツとプログラミングするのが好きな人間です。
カテゴリー