
私は私の色が好きですvim
。を実行するときに同様の色で出力することができますかcat
?
以下のようにシェーディングツールを使用できることが好きです。ソースファイルとスクリプトファイルに色付きの「cat」がありますか?。私はこれを私の標準にしたいと思いますcat
。たとえば、別名を作成します。
alias cat="source-highlight --out-format=esc -o STDOUT -i"
ただし、ファイルの種類がわからない場合は、次.gitignore
が返されます。
$ cat .gitignore_global
source-highlight: could not find a language definition for input file .gitignore
認識されたファイル形式の場合、コマンドに特定のバージョンを実行させるにはどうすればよいですか?それ以外の場合は、source-highlight
cat
ファイルの標準白黒バージョンのみを実行させることができますか?cat
1つのオプションはエイリアスを使用することですが、ccat
可能であればエイリアス自体に置き換えることをお勧めしますcat
。
cat *.rb
(またはさらにccat *.rb
)のようなワイルドカードを使用できればいいようです。現在、以下を提供しています。
$ ccat *.rb
Please, use one of the two syntaxes for invocation:
source-highlight [OPTIONS]... -i input_file -o output_file
source-highlight [OPTIONS]... [FILES]...
次のようにできればいいでしょう。
ls *.rb | xargs ccat # (or cat)
私はこれを行うことができます:
ls *.rb | xargs cat
現在私は以下を得ます:
$ ls *.rb | xargs ccat
xargs: ccat: No such file or directory
答え1
おそらく次のスクリプトのようなことができます(テストされていません)。
#!/bin/sh
for fn in "$@"; do
source-highlight --out-format=esc -o STDOUT -i $fn 2>/dev/null || /bin/cat $fn
done
これはいくつかのタスクを実行します。
- 各コマンドライン引数を繰り返します。
- を実行し、
source-highlight
エラー出力を次にリダイレクトしてみてください。/dev/null
source-highlight
失敗すると正常に実行/bin/cat
cdc
このスクリプトをexampleというファイルに入れてからalias cat=cdc
。
関数として
上記のスクリプトをBash関数呼び出しに適用し、次のようにドットファイルに統合できます。
cdc() {
for fn in "$@"; do
source-highlight --out-format=esc -o STDOUT -i $fn 2>/dev/null || /bin/cat $fn;
done
}
編集(Michael)何らかの理由でccat
関数名を使用しようとするとうまくいきませんでしたが、うまくいきcdc
ます!