linux / macOS grep サブディレクトリ テキストファイルの文字列を探す

macOSでgrep

macOSやLinuxで複数あるテキストファイルの中の特定の文字列を検索する場合、ターミナルアプリのgrepコマンドを使えば簡単に検索が可能です。下のような2つのフォルダ内にそれぞれCSVファイルが入っています。CSVファイルはテキストファイルなのでgrepで検索できます。

複数フォルダにまたがったCSVファイル
複数フォルダにまたがったCSVファイル

grepコマンドで -rのオプションをつけて実行します。grep -r [検索したい文字] [パス]です。

grep -r ワイン ./

上記コマンドを実行すると下のようにフォルダ名含めた結果が表示されます。

grep コマンド実行結果
grep -r コマンド実行結果

find と grepを使っても同じような結果が得られます。下記はfind grepコマンドです。

find ./ -type f | xargs grep ワイン  
find [フォルダ名] -type f | xargs grep [検索文字列]
find [フォルダ名] -type f | xargs grep [検索文字列]

JavaScript 配列をJSONに変換する

JavaScript Array To JSON

JavaScriptで不定長の配列変数の情報をJSON化するコードです。入力は、[“ドラゴン”, “ライガー”, “ポセイドン”]という配列を入れています。この配列は3つ固定ではなく何個セットしても大丈夫です。DynamoDBなどでExpressionAttributeValuesを設定する場合などに使えそうです。

const arrayToJSON = async(values) => {
    const columnName = ":ColumnName"
    let s = {}
    let i = 0
    values.forEach(aValue => {
        let element1 = columnName + String(++i)
        s[element1] = aValue
    })
    return {"ExpressionAttributeValues":s}
}
Promise.all([arrayToJSON(["ドラゴン", "ライガー", "ポセイドン"])]).then(prmsArr => {
    prmsArr.forEach(jValue => {
        console.log(JSON.stringify(jValue))
        //{"ExpressionAttributeValues":{":ColumnName1":"ドラゴン",":ColumnName2":"ライガー",":ColumnName3":"ポセイドン"}}
    })
})
2022 MJELD TECHNOLOGIES. ALL RIGHTS RESERVED