1

sed 命令を使用して (または使用しようとして)、テキスト行から先頭と末尾の空白および/または空行を削除しています...

sed 's/^[ \t]*//;s/[ \t]*$//;/^$/d'

それは機能していますが、テキストからバックスラッシュを取り除いているようです。

たとえば、入力文字列test\\\testの場合: 結果は次のようになります。test\test

これは避けられると思いますが、苦労しています。どんな助けでも大歓迎です。参考までに、これをAppleScriptObjC内からシェルスクリプトとして呼び出しています

ありがとう

アンディ

4

2 に答える 2

0

これはよりシンプルで堅牢であることがわかります。

awk 'NF { gsub(/^[[:space:]]+|[[:space:]]+$/,""); print }'
于 2013-10-04T17:07:45.550 に答える
0

セドじゃない。変数をクォートするのを忘れていませんか?

$ str='test\\\test'
$ echo "$str"
test\\\test
$ sed 's/^[ \t]*//;s/[ \t]*$//;/^$/d' <<< "$str"
test\\\test

ところで、[[:blank:]]代わりに使用します[ \t]

于 2013-10-04T16:41:38.157 に答える