2

bash 変数の末尾のスペース (および最終的にはタブ) を取得しようとしています。目的は、一致するインデント レベルで外部ツール プラグインを使用して gedit にコードを挿入することです。

たとえば、文字列が次のようになっているとします。

'        a string containing multiple spaces and other characters():'

私は以下を取得したい:

'        '

この記事では、読みやすくするために引用符を付けています。
これを行う簡単な方法はbashにありますか?

gedit 外部ツールについて疑問に思っている人のために、これを使用して pdb ブレークポイントを挿入しています。

#!/bin/sh

foo=$GEDIT_CURRENT_LINE
foo="${foo%%[^ ]*}"
echo -n "
${foo}import pdb
${foo}pdb.set_trace()"
4

2 に答える 2

1

sed:

sed 's/\( *\).*/\1/' your.file

または、その空白を表示するために引用符が必要な場合は、次のようにします。

sed "s/\( *\).*/'\1'/" your.file

テスト:

echo '        a string containing multiple spaces and other characters():' \
    | sed "s/\( *\).*/'\1'/" your.file

出力:

'        '

(大したことではありません。空白だけです:)、しかしそれはあなたが望んでいたことです)

于 2013-08-20T19:31:16.193 に答える