awk
結論 cat train_plus_test.csv | awk -F, '{table[$10]=table[$10]+1} END{for (i in table) { print i, table[i] } }' | sort 説明 uniq -cみたいな事したい。 連想配列に集計したい値をkey、出現回数をvalueにして格納していく。
結論 cat test.csv | awk -F',' 'FNR > 1 {print $0}' 1行目以外を出力する 説明 NFRに処理行数が入っているので、それをパターンに使ってフィルターする。 例えば、csvファイルのヘッダーだけ無視したい時とかに使える
結論 cat test.csv | awk -F',' 'BEGIN{OFS=","} {$1=$1"," ; print $0}' 解説 一列目と二列目の間に列を追加したい。 一列目を「一列目に,を加えたもの」で上書きして出力している。 OFSに,を指定して出力をcsvにする
結論 これ $ echo '1 1\n2 1\n3 1' | awk '$1 > 1' 2 1 3 1 説明 awkで、n番目のフィールドがパターンにマッチした時だけ処理したい - 時系列のフリーランチshinya131-note.hatenablog.jp これ、パターンマッチじゃなくて、不等号とか==でtrueの時だけ処理し…
結論 cat あるファイル | sort | uniq -c | awk '$1 > 1' 解説 sortしてuniq -cすることで、1列目に出現回数、2列目に内容が出力される。 awkで1列目が2以上になっている行(=重複した行)を取り出してる。
結論 1番目のフィールドにキーワードが含まれる場合だけ処理する場合 awk '$1 ~ /キーワード/' 説明 1フィールド目に1を含む行だけ処理したい。 この例だと1行目だけを処理したい。 $ echo '1 a1\n2 b1\n3 c1' 1 a1 2 b1 3 c1 こうすると、2フィールド目に含…
結論 awkでできる $ awk '{print FILENAME $0}' ./target_directory/* filename_a 1 filename_a 2 filename_a 3 filename_b 1 filename_b 2 filename_b 3 filename_c 1 filename_c 2 filename_c 3 説明 FILENAMEで現在読み込んでいるファイル名 $0で読み込ん…
結論 cat ~/.ssh/config | awk '/xxx-xxx-01/ { print ; getline; print }' とりあえず出来た 注意点: getlineは色々注意点があるようだ(把握してない) http://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_074 説明 こういうファイルで、Hostに対応…
結論 こう $(NF-n) 説明 awk '{print $1}' # 左から1番目のフィールドをprint awk '{print $NF}' # 一番右のフィールドをprint awk '{print $(NF-1)}' # 右からn番目のフィールドをprint NFにフィールド数が入っているので、それを使う
結論 find .で全ファイル名を取得して正規表現で探す $ find . -type f | awk -F / '{print $NF}' | awk '!/^[a-zA-Z0-9._-]+$/' has_space_file_name 2.png has_ampersand_file&name.jpg 日本語のファイル名.txt 説明 find . -type f | # 全ファイル名を取…
入力例 $ input.txt a2 a3 b1 b2 b3 c1 c2 c3 基本的なやつ 正規表現に一致した行だけを処理する $ awk '/a/' input.txt a1 a2 a3 複数のパターンの組合せ or $ awk '/a/ || /b/' input.txt a1 a2 a3 b1 b2 b3 and $ awk '/a/ && /1/' input.txt a1 その他 n…