空白部分は機能しますが、削除のためにアンダースコアを表示する簡単な方法はありますか?
echo \"" & [applescript string input] & "\" | xargs
コンテキスト:
アップルスクリプト:
on trim(i)
return (do shell script "echo \"" & i & "\" | xargs")
end trim
set input to " _someString "
set output to trim(input)
- 現在の出力:予想どおり「_some_String」です。
- 希望の出力: "some_String"
ベストアンサー1
前後の空白文字と下線は、次の方法で削除できますsed
。
sed 's/^[_[:space:]]*//; s/[_[:space:]]*$//'
これは次のとおりです。
_foo_bar_
_ _ _ x y _ _
入力する:
foo_bar
x y
xargs
いずれにせよ、テキスト処理には使用しないでください。xargs
非常に具体的な方法で入力を処理します。これはユーザーが望むものとほとんど異なります(一部の空白文字を分割し、そのリストは実装ごとに異なり、引用符とバックスラッシュを一意の方法で処理し、いくつかの実装は意味の_
終わりとして扱われます)。窒息、いくつかは行の長さまたは引数の数の制限が非常に低いです...)echo
コマンドが提供されていない場合、デフォルトで実行されます。これは悪名高い、利用できず、移植可能で、プロセス出力ラインも生成します。それぞれ(そしてecho
各出力でスタンドアロンユーティリティを実行します)
一部のsed
実装では、テキストではなく入力や長すぎる行もブロックします。