すべての先行スペースを削除するFIFOを作成しますか? [閉鎖]

すべての先行スペースを削除するFIFOを作成しますか? [閉鎖]

.txt私の個人的なマニュアルファイルからコードブロックをコピーしました。端末に貼り付けてEnterキーを押して実行します。最近、審美的な理由でインデントを行いましたが、コピー時に実行が中断されました(セカンダリプロンプトがオンのまま)。この現象を処理するために、私はFIFO(先入れ先出し)を使用することを考えました。

FIFOを生成し、次のコードブロックを渡そうとします。

⇨⇨⇨⇨(
⇨⇨⇨⇨Indented commands...
⇨⇨⇨⇨)

FIFOは、この元のコードブロックからすべての先行スペース(通常はタブですが空白の場合もあります)を削除し、インデントされていないバージョンを返す必要があります。

(
commands...
)

私が理解したのは、FIFOファイルに入れるべきコードです's/^\s*//g'

私の質問:

Bash端末にコードブロックを貼り付けるときに実行する前に作成したFIFOファイルの影響を受けるにはどうすればよいですか?

修正する:

以下は私がテストした完全な構文です。正しく実行されていないため(エラーなし、ヘルパープロンプトのみがオン)、FIFOフィルタの使用を検討しました。

⇨⇨⇨⇨(
⇨⇨⇨⇨command1...
⇨⇨⇨⇨cat <<-'PMA' > /opt/script.sh
⇨⇨⇨⇨⇨⇨⇨⇨#!/bin/bash
⇨⇨⇨⇨⇨⇨⇨⇨strings...
⇨⇨⇨⇨PMA
⇨⇨⇨⇨command2...
⇨⇨⇨⇨) | sed 's/^\s*//g'

ベストアンサー1

私は(かなり簡単に)単純にFIFO(「名前付きパイプ」とも呼ばれます)を生成し、それを通過するデータを変更できるとは思いません。パイプの末端からデータが出たときにデータをフィルタリングする方が簡単な場合があります。たとえば、「行の開始」は行ごとに1回しか表示されないため、対応する[...] | sed 's/^\s*//'フラグは重複します。g

おすすめ記事