「sed」の定義

「sed」の定義

すべての行が次から始まる巨大なテキストファイルがあります。

#=GS N4TFW2_FUSC1/96-161      AC N4TFW21

N4TFW2_FUSC1私はこの部分だけに興味があります。残りのテキストからこの部分を抽出して、フルテキストファイルに適用する必要があります。

動作する次のスクリプトが見つかりましたが、方法がわかりません。

cat helo.lst | sed 's/^#=GS\s\([A-Z0-9_]*\)\/.*/\1/1' > helo_id.lst

その後、何が起こったのかを説明できる人はいますか?s/

たとえば、私が知っている限り、ファイルにwithが表示さsed 's/Mark/Euro/g' de_currency.txtれるすべてのエントリを変更します。Markしかし、私の例では、スクリプトはそれよりも複雑に見えます。Eurode_currency.txt

ベストアンサー1

sed構文によると:

/オリジナル/交換/1回


原稿を分解する

^行の始まり

#=検索するGS文字列

\sスペース

( ) \ はシェルで使用されているように ( で意味を持ちます。

[A-Z0-9_] []は、A〜Z、0〜9、_などの文字を表します。

*は0回以上を意味します。

\/\ はシェルから意味を得るため、「/」で終わる文字列を表します。

.*行が終わるまで、他のすべてを消費/一致します。


分解の代替

\ 1元の文字列の最初の文字列正規表現の一致(変数)(逆参照[グループ])


警告:これはGNU sed構文です。 OS/X または *BSD では gsed を使用する必要があります。

高度な例を含むsed記事リンク:

http://www.thegeekstuff.com/2009/10/unix-sed-tutorial-advanced-sed-substitution-examples/

おすすめ記事