パイプで繋いだら、特定のカラムに色を付けるスクリプトを組みました。
bash
1#!/bin/bash 2awk '{$4="\033[0;31m"$4"\033[0;39m";print}' -
これはうまく動きました。
でも指定するカラムを動的にしたいです。
bash
1#!/bin/bash 2#awkの引き数を変数におさめて実行する 3NUM=$1 4 5COM="'{$$NUM=\"\033[0;31m\"$$NUM\"\033[0;39m\";print}'" 6#debug用のecho 7echo "awk $COM -" 8 9awk $(echo $COM) -
これは失敗します。(下記が出力例)
awk '{$1="\033[0;31m"$1"\033[0;39m";print}' - awk: cmd. line:1: '{$1="\033[0;31m"$1"\033[0;39m";print}' awk: cmd. line:1: ^ invalid char ''' in expression
なおechoで出てくる内容をコピペすると問題なく使えます。
ls -l | awk '{$1="\033[0;31m"$1"\033[0;39m";print}' - →1番目のカラムのみ色付きで出力する
シングルクォートが文字列として認識されてるのかなぁと思いますが、うまく切り分けできません。
どこをどう直せばいいでしょうか。
なおlsが目的じゃないので、LS_COLORSなどは使わない方向でお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。