【シェルスクリプトをオフィス業務の主役に!】シェルスクリプトでエクセル作業を効率化する超活用術まとめ

はじめに
テーマ別のページ紹介
基本テクニック① 〜 文字列の操作
AwkとJqの正規表現の使い方まとめ
【こんな時にオススメ】
・Awkの正規表現の使い方を知りたい
・Jqの正規表現の使い方を知りたい
AwkとJqで文字列の置換を比較解説
【こんな時にオススメ】
・Awkで文字列の置換を基礎を知りたい
・Jqで文字列の置換を基礎を知りたい
AwkとJqでCSV形式のデータを出力の方法を紹介
【こんな時にオススメ】
・Awkで出力フォーマットを操作したい
・Jqで出力フォーマットを操作したい
AwkとJqで正規表現のマッチングとその後方参照を紹介
【こんな時にオススメ】
・Awkの正規表現でマッチした文字列をキャプチャしたい
・Jqの正規表現でマッチした文字列をキャプチャしたい
シェルスクリプトで簡単な用法で文字列操作できるパラメーター拡張の使い方集
【こんな時にオススメ】
・bashのパラメーター拡張を知りたい
・できるだけ簡潔なシェルスクリプトを書きたい
AwkとJqで文字列分割に必須なsplit関数の使い方を解説
【こんな時にオススメ】
・Awkで文字列をさらに細かく分割したい
・Jqで文字列をさらに細かく分割したい
Sedでテキスト全体を一括削除する方法
【こんな時にオススメ】
・Sedの正規表現の使い方を思い出したい
・テキストを高速に特定の文字を一括削除をしたい
Sedで文字列の中の空白文字を削除するときの取り扱いを説明
【こんな時にオススメ】
・Sedで空白文字が上手く削除されない理由が知りたい
・Sedで空白文字を細かく制御したい
SedコマンドでCSVデータから列の区別なくキーを含んでる行を全抽出
【こんな時にオススメ】
・ CSVデータで不特定の列にキーワードが分布しているパターンを操作したい
Sedコマンドで複数行をまたぐ文字列パターンをマッチさせるための改行文字について
【こんな時にオススメ】
・Sedで改行文字を先読みさせて正規表現を使いたい
SedとAwkでCSVデータの行と列を操作する基本を解説しています。
【こんな時にオススメ】
・CSVデータ内の行と列をシェルコマンドでどう操作するか知りたい
巨大なCSVテキストをシェルコマンドでどう効率的に扱うかを考える
【こんな時にオススメ】
・巨大なCSVファイルから部分的に切り取ったデータを取り出したい
・Head/Tail/Cut/Trコマンドでより高速にテキストを捌く方法を知りたい
・Head/Tail/Cut/TrコマンドのCSVデータの使い方を知りたい
AwkとJqでCSVデータの空データを箇所をエラー値で埋める
【こんな時にオススメ】
・Awkでセル内空白を空文字かヌルなのかを区別させたい
・Jqでセル内空白を空文字かヌルなのかを区別させたい
・Excel関数のようにエラー値を#N/Aで再現したい
AwkでCSVデータの全てのセル要素を解析して重複を調べる方法
【こんな時にオススメ】
・CSVデータの行・列区別なくセル要素の重複を調べたい
複数のCSVファイルを重複を考慮しながら合成する方法
【こんな時にオススメ】
・バラバラになって複数存在してしまったCSVファイルを一つに統合したい
基本テクニック② 〜 表データから検索
もっとも基礎的なCSVデータの検索ツールの作り方を解説
【こんな時にオススメ】
・CSVデータからデータを探すスクリプトの概要を知りたい
検索用のインプットファイルを使ったCSVデータ検索のやり方を解説
【こんな時にオススメ】
・データ検索を直接入力でなく、入力ファイルで操作したい
より自由度の高い検索ツールにするための機能拡張を紹介
【こんな時にオススメ】
・ CSVデータを複雑な条件で検索するツールを作りたい
基本テクニック③ 〜 CSV形式で集計する
対話的に集計項目を選択できるスクリプトの作成の基本を解説
【こんな時にオススメ】
・対話的に操作できるツールスクリプトが作成したい
正規表現を使った集計条件で集計操作を行うスクリプトの作成方法を解説
【こんな時にオススメ】
・セル文字列の要素に曖昧さを含んだ CSVデータでも集計を行いたい
集計条件が複数ある場合に集計操作を行うスクリプトの作成方法を解説
【こんな時にオススメ】
・CSVデータで複数の列で集計条件を同時に満たす要素だけで集計がしたい
エクセル時間を持つ列に対して集計操作を行う場合の基礎
【こんな時にオススメ】
・日付時間を集計条件に指定したい
・Dateコマンドの出力フォーマットを良く知りたい
平均などの複雑な算術計算を行うための集計スクリプトの作成方法
【こんな時にオススメ】
・単純な計算だけでなく、数学的な操作をデータ解析したい
基本テクニック④ 〜 シェルスクリプトとExcelとの連携
xlsx2csvを使ってExcelファイルの直接操作を解説
【こんな時にオススメ】
・OS環境に依らずLinuxでもExcelファイルを直接読み込みたい
・OS環境に依らずLinuxでもExcelファイルからCSVデータを保存したい
xlsx2csvでExcelファイルからCSVデータと取り出したときのセル内改行を解説
【こんな時にオススメ】
・CSVデータのセル内改行の扱い方を知りたい
Linuxコマンドのみでcsvデータからxlsxファイルへ変換する方法を紹介
【こんな時にオススメ】
・Linux環境だけでもxlsxファイルを作りたい
・Excelなしでxlsxファイルにデータを作成・管理したい
Jqコマンドを利用したCSV操作
Xargsを使ったシェルスクリプトのパイプ処理化をコツを紹介
【こんな時にオススメ】
・Jqを使ったスクリプトとても重い
JqコマンドでJSONデータを扱う際に利用するコマンドオプションを解説
【こんな時にオススメ】
・Jqの入力データの取り込みが思うように上手くいかない
・Jqの出力データのフォーマットが思うような形になっていない
JqコマンドとAwkコマンドを組み合わせることでJSONデータとCSVデータを相互に変換しあうテクニックを考えてみました。
【こんな時にオススメ】
・Jq&AwkコマンドでCSVデータをJSONデータに変換したい
・Jq&AwkコマンドでJSONデータをCSVデータに変換したい
Awkコマンドに関するテクニックを取り上げた記事
Jqがインストールできない人向けの苦肉の策・AwkでJsonファイルを扱うテクニックを紹介
【こんな時にオススメ】
・Jqを使いたいのに、インストール必須なpythonが諸事情等で使えない
CSVデータで複雑な並び替えを行う上で必要なカスタムソートを解説
【こんな時にオススメ】
・CSVデータを独自のルールで並び替えたい
その他の覚えておくとお得なテクニック
Excel特有の時間形式・『エクセル時間』をDateコマンドで自在に変換
【こんな時にオススメ】
・シェルコマンドでエクセル時間から通常の時間表記にしたい
・シェルコマンドで通常の時間表記からエクセル時間にしたい
Excelファイルから取り出した生のCSVデータ内にあるエクセル時間をDateコマンドで変換
【こんな時にオススメ】
・エクセル時間をシェルスクリプト内でちゃんとした時間で表示したい
引数を渡せるシェルスクリプトの作成方法の基本を解説します
【こんな時にオススメ】
・自作スクリプトで単純な引数の引き渡しの方法が知りたい
・getoptsを使った自作スクリプトの作り方が知りたい
・引数解析付きの自作スクリプトの作り方が知りたい
WindowsでもLinuxのシェルコマンドを使えるようにするbusyboxの紹介
【こんな時にオススメ】
・Windowsで簡単にシェルコマンドを実行させたい
(Alpine標準の)busyboxに付属してるGnu dateコマンドを使うときの基礎
【こんな時にオススメ】
・Gnu dateコマンドの基礎を知りたい
・Awkスクリプトの中でもdateコマンドを使いたい
記事リンク・ダイジェスト

【xlsx2csvコマンド活用編】Linux環境でExcelファイル(xls/xlsx)をCSVデータに変換する
【xlsx2csvコマンド活用編】Linux環境でExcelファイル(xls/xlsx)をCSVデータに変換する
今回はExcelでCsv形式のデータをエクスポートしたいけど、WindowsOSのパソコンは無し、Linuxしか使いたくない方のためのxlsx2csvコマンドの紹介記事です。
クリックするとリンク先へ飛びます
Linuxでシェルコマンドからエクセルファイル(XSLX)を新規作成する方法〜「libreoffice」と「ssconvert」
Linuxでシェルコマンドからエクセルファイル(XSLX)を新規作成する方法〜「libreoffice」と「ssconvert」
LinuxユーザーのためのExcelファイル(XLSX形式)をより快適扱うためのワンポイント講座です。今回はCSVファイルから直接XLSXファイルに変換が可能な「libreoffice」と「ssconvert」コマンドを紹介します。
クリックするとリンク先へ飛びます
Excelでの時間の計算をシェルスクリプトでどう取り扱うのか〜DATEの計算方法
Excelでの時間の計算をシェルスクリプトでどう取り扱うのか〜DATEの計算方法
エクセルでの日付時間とシェルスクリプトの扱うUNIX時間とは一見取り扱っているデータの表示が同じようで、日付の換算方法は異なります。ここではExcel時間表示フォーマットの話と、それをシェルスクリプトでどう補正するとCSVインポート・エクスポートが上手くいくのかを考察してみます。
クリックするとリンク先へ飛びます
【シェルスクリプト&Excel】CSVデータから日付範囲で細かい条件指定した集計を行う
【シェルスクリプト&Excel】CSVデータから日付範囲で細かい条件指定した集計を行う
CSVデータの集計操作系のスクリプトツールを作成してみる特集の第1回目です。今回はCSVデータの集計操作の基礎的な内容も掘り下げつつ、後半で少し応用的なツールスクリプトに仕上げる方法をじっくり解説していきます。
クリックするとリンク先へ飛びます
日付を含むエクセルデータをエクスポートしたときのCSVデータの時間表示をシェルスクリプトで取り扱う方法
日付を含むエクセルデータをエクスポートしたときのCSVデータの時間表示をシェルスクリプトで取り扱う方法
ExcelデータからCsv形式へインポート/エクスポートする際に気をつけておかなかればならない一つの日付を取り扱う換算ルールを特集します。
クリックするとリンク先へ飛びます
【シェルスクリプト&Excel】平均値の算出 〜 Awkを使った平均を計算するスクリプト
【シェルスクリプト&Excel】平均値の算出 〜 Awkを使った平均を計算するスクリプト
CSVデータの自由でより高機能な集計操作を行うスクリプトツールを作成してみる特集の第3回目です。Awkでも科学計算ほどの精度は無いものの、それでもかなり高度な算術計算処理をスクリプト内で実現することができます。今回は簡単な好例として平均を計算させてみます。
クリックするとリンク先へ飛びます
【シェルスクリプト&Excel】複数条件を満たすときのみに集計するスクリプト
【シェルスクリプト&Excel】複数条件を満たすときのみに集計するスクリプト
CSVデータの自由でより高機能な集計操作を行うスクリプトツールを作成してみる特集の第3回目です。前回はCSVデータで特定の一列から条件を満たすものを正規表現で抽出・集計する方法を紹介しました。今回は検索が複数列に渡る条件を与えた集計スクリプトの作り方を考察します。
クリックするとリンク先へ飛びます
【シェルスクリプト&Excel】より複雑な条件を満たすのときのみに集計するスクリプト
【シェルスクリプト&Excel】より複雑な条件を満たすのときのみに集計するスクリプト
CSVデータの自由でより高機能な集計操作を行うスクリプトツールを作成してみる特集の第2回目です。今回は正規表現を用いてより自由度の高い集計スクリプトの作り方を簡潔に考えてみましょう。
クリックするとリンク先へ飛びます
【シェルスクリプト&Excel】集計を対話的にするスクリプト作成の基礎
【シェルスクリプト&Excel】集計を対話的にするスクリプト作成の基礎
Excelでの定番の業務テクニックとして要素検索と並んで良く利用されているのが集計操作です。基礎固めとしてまずは集計モードを対話に選択できるようなツールスクリプトに仕立てる前段階のユーザーインタラクティブなシェルスクリプトの実装方法を考えてみます。
クリックするとリンク先へ飛びます
【シェルスクリプト&Excel】CSVデータの複数列から複数条件で検索して行データを表示させるスクリプト
【シェルスクリプト&Excel】CSVデータの複数列から複数条件で検索して行データを表示させるスクリプト
CSVデータの検索に特化したエクセルでいうところのVLOOKUP関数のような機能をもつスクリプトツールを作成してみる特集の第3回目です。前の回に引き続いて、もっと自由に検索列を決められて、なおかつ複数の検索条件も与えられるように再度Awkをベースに拡張してみます。
クリックするとリンク先へ飛びます
【シェルスクリプト&Excel】CSV形式で与えてある検索条件ファイルから検索結果を出力するスクリプト
【シェルスクリプト&Excel】CSV形式で与えてある検索条件ファイルから検索結果を出力するスクリプト
CSVデータからエクセル操作機能を代替するスクリプトツールを作成してみる特集の第2回目です。今回はAwkコマンドでCVSファイル内からキーワードリスト検索&抽出するスクリプトツールを作成してみます。
クリックするとリンク先へ飛びます
【シェルスクリプト&Excel】条件を与えて検索結果をCSVデータで出力するスクリプト
【シェルスクリプト&Excel】条件を与えて検索結果をCSVデータで出力するスクリプト
CSVデータの検索に特化したエクセルでいうところのVLOOKUP関数のような機能をもつスクリプトツールを作成してみる特集の第1回目です。今回は読み込んだCSVデータの特定の1列を検索キーとして、指定した検索キーリストからヒットした要素を順にピックアップしてCSV形式で表示するスクリプトを作成してみます。
クリックするとリンク先へ飛びます
【シェルスクリプト&Excel】Head/Tail/Cut/Trコマンドを使ってCSVデータから効率で高速に行&列の範囲を絞り出す方法
【シェルスクリプト&Excel】Head/Tail/Cut/Trコマンドを使ってCSVデータから効率で高速に行&列の範囲を絞り出す方法
容量の大きなCSVデータ等を、高速かつ効率的にパイプライン処理するために、Head、Tail、Cutとその他のLinuxコマンドを使ったテクニックを紹介します。
クリックするとリンク先へ飛びます
【シェルスクリプト&Excel】検索対象が無いときの対処方法〜エラー時の値を#N/Aに置き換える
【シェルスクリプト&Excel】検索対象が無いときの対処方法〜エラー時の値を#N/Aに置き換える
検索結果が無い行を発見したときに、通常は何も表示されないで無視されることが多いですが、エラーハンドリングを定義し、エラーを発見したときの処置も実装したい場合があります。たとえば、検索結果で一致しない行には、新しい内容を新規作成してそこに挿入する...などです。今回はCSVデータ使う上でのAwkとjqを使ったシェルスクリプトのエラーの捌き方の基礎を行っていきます。
クリックするとリンク先へ飛びます
【シェルスクリプト&Excel】SedコマンドでCsvデータから特定の文字列を含む行を抽出する
【シェルスクリプト&Excel】SedコマンドでCsvデータから特定の文字列を含む行を抽出する
CSV形式のデータの中の、不特定で複数の行(もしくは複数のセル)に対象の文字列を含むような曖昧さのある場合には、Awkかjqで処理するには少し冗長な操作になるときがあります。今回は先にSedで特定の文字列を含む行をフィルタリングのやり方を、Awkかjqで利用する前の下処理の方法として紹介します。
クリックするとリンク先へ飛びます
【シェルスクリプト&Excel】Sedコマンドで不要な空白(文字列前後の空白や連続した空白)を削除
【シェルスクリプト&Excel】Sedコマンドで不要な空白(文字列前後の空白や連続した空白)を削除
セルに含まれる文字列には、インデントとして無駄に連続した空白が詰まっていたり、タブやスペースなどの複数のタイプの空白が混合して入っていたりする場合が有ります。今回はSedを使った余計な空白文字の除去・洗浄に関した内容を解説します。
クリックするとリンク先へ飛びます
【xlsx2csvを使おう!】 Excelデータシートのセル内改行をCsvファイルで取り扱う方法
【xlsx2csvを使おう!】 Excelデータシートのセル内改行をCsvファイルで取り扱う方法
csvをシェルスクリプトで取り扱う上でもっとも厄介なものが改行文字です。今回は、Excelデータ中に現れるセル内改行を、xlsx2csvコマンドからCsv形式のテキストファイルで扱う方法を解説します。
クリックするとリンク先へ飛びます
【シェルスクリプト&Excel】文字列中の特定の記号を一括削除する方法
【シェルスクリプト&Excel】文字列中の特定の記号を一括削除する方法
Csvデータ全体に渡って、セル内に含まれる文字列に区別無く存在する不要な記号を一括して削除したい場合が有ります。このような特殊記号は当然ながら手動で検索しながら一つ一つ消していくのも面倒です。今回はCsvファイルの全体に渡るような文字列の置き換えをSedコマンドを利用して、一気に、そして高速に不要な文字を削除する方法を紹介します。
クリックするとリンク先へ飛びます
【シェルスクリプト&Excel】文字列の分割を分割を極める ~ split関数の使い方
【シェルスクリプト&Excel】文字列の分割を分割を極める ~ split関数の使い方
CSV形式と似ているけどちょっと違う、コンマ以外の様々な区切り文字(セパレーター)をもったデータファイルから、柔軟・簡単に分割(split)する方法を解説していきます。
クリックするとリンク先へ飛びます
【シェルスクリプト&Excel】文字列の後方参照を理解する
【シェルスクリプト&Excel】文字列の後方参照を理解する
csvデータのセル文字列の後方参照をAwkとjqの2つのパターンでどう実現するのかを考えてみるちょっとした技術記事です。
クリックするとリンク先へ飛びます
【シェルスクリプト&Excel】CSVデータ編集で使える最低限覚えておきたい正規表現の活用法
【シェルスクリプト&Excel】CSVデータ編集で使える最低限覚えておきたい正規表現の活用法
AwkやSedといったテキストを編集する代表的なコマンドをより高度に操作するためには、正規表現(Regular Expression)の理解が欠かせなくなります。マニアックな正規表現のテクニックなどは避けながら、一般的なAwk(GNU Awk)とjqでcsvファイルを操作する際に最低限覚えておきたい正規表現をまとめてみます。
クリックするとリンク先へ飛びます
【シェルスクリプト&Excel】SedとAwkによるCsvファイルの行・列の操作アレコレ
【シェルスクリプト&Excel】SedとAwkによるCsvファイルの行・列の操作アレコレ
CsvファイルをSedやAwkなどのLinuxコマンドからCsvデータの行と列の操作するための基礎的なテクニックをまとめてみます。
クリックするとリンク先へ飛びます
【シェルスクリプト&Excel】シェルスクリプトで複数の条件による検索し結果をCSVで返す
【シェルスクリプト&Excel】シェルスクリプトで複数の条件による検索し結果をCSVで返す
シェルスクリプトで、Awkかjqコマンドを使ってCSVフォーマットのファイルを色々と処理してみたい方に向けたお役立ちテクニック特集です。この回ではターゲットとなる列の要素に複数の条件を検索して、その検索結果をcsv形式で返すようなシェルスクリプトを作成してみます。
クリックするとリンク先へ飛びます
【シェルスクリプト&Excel】CSVファイルで読み出した文字列を複雑なルールで置換したい
【シェルスクリプト&Excel】CSVファイルで読み出した文字列を複雑なルールで置換したい
シェルスクリプトで、Awkかjqコマンドを使ってCSVフォーマットのファイルを色々と処理してみたい方に向けたお役立ちテクニック特集です。今回はシェルスクリプトでCSV形式の中の文字列置換を行う方法に関して考えてみます。
クリックするとリンク先へ飛びます
【シェルスクリプトをオフィス業務の主役に!】シェルスクリプトでエクセル作業を効率化する超活用術まとめ
【シェルスクリプトをオフィス業務の主役に!】シェルスクリプトでエクセル作業を効率化する超活用術まとめ
シェルスクリプトはどこでもどんなOSでも基本的に使えて、一度使い方を覚えるとパソコン上でありとあらゆる操作を可能としてくれます。そこでオフィスで日々エクセル業務と向き合う多忙なオフィスワーカー向けに、シェルスクリプトの力で劇的に生産効率を改善しする方法を提案します。
クリックするとリンク先へ飛びますまとめ
ナンデモ系エンジニア
主にAngularでフロントエンド開発することが多いです。 開発環境はLinuxメインで進めているので、シェルコマンドも多用しております。 コツコツとプログラミングするのが好きな人間です。