web-dev-qa-db-ja.com

ワンライナーbashエイリアスで末尾の改行を削除する

Mac OS Xターミナルに単純なエイリアスを書き込んで、現在の作業ディレクトリをコピーしようとしています。私はこれを持っています:

alias cpwd="echo \`pwd\` | pbcopy; echo \"Copied \`pwd\`\""

次に、以下を実行してコピーします。

$ cpwd

問題はecho pwd最後に改行が含まれます。したがって、貼り付けるとすぐに実行されます(ターミナルに貼り付けた場合)。

私がやりたいのは、試行中の改行を取り除くことだけですが、インターネットで見つけたものは何も私にはうまくいかないようです。 sedawk、およびcutを含むさまざまな解決策を見ましたが、私はそれを完全に理解することができません。簡単にできるようです。

8
Sean Adkinson

私はこれがうまくいくはずだと信じています:

alias cwd="echo -n `pwd` | pbcopy; echo \"Copied `pwd`\""

-nは「改行なし」と言います。それか、いつでも出力をtrに渡して、次のように改行文字を削除できます。

alias cwd="echo `pwd` | tr -d "\n" | pbcopy; echo \"Copied `pwd`\""

末尾の改行文字を最初のエコーから削除するのか、両方から削除するのかはわかりませんが、最初のエコーで機能するかどうかはわかります;)

5
mnmnc

Mac OS Xのechoコマンドについてはよくわかりませんが、-n引数を指定すると、echoは末尾の改行を出力しません。

-n末尾の改行を出力しません

よろしく...

0
user181993