0
0

sedで文字列抽出

Posted at

sedコマンドを使用して、指定されたパターンに基づいて特定の文字列を抽出するには、次のようなコマンドを使用できます。

echo "aaa_bbb-ccc-dd1-ee2-ff3-123.456.789-auto202406202146" | sed 's/\(.*\)-[0-9]\+\.[0-9]\+\.[0-9]\+-.*$/\1/'

このコマンドの説明は以下の通りです:

  1. echo "aaa_bbb-ccc-dd1-ee2-ff3-123.456.789-auto202406202146" は、サンプル文字列を出力します。
  2. sed 's/\(.*\)-[0-9]\+\.[0-9]\+\.[0-9]\+-.*$/\1/' は、sedコマンドを使って文字列を変換します。
    • \(.*\) は、最初の部分をキャプチャします(.* は任意の文字列にマッチします)。
    • -[0-9]\+\.[0-9]\+\.[0-9]\+- は、-数字.数字.数字- のパターンにマッチします。
    • .*$ は、文字列の残りの部分にマッチします。
    • \1 は、キャプチャした最初の部分を参照します。

このコマンドを実行すると、指定された文字列から目的の部分が抽出されます。

指定されたパターンに基づいて特定の文字列(後半の部分)を抽出するためには、次のようなsedコマンドを使用できます。

echo "aaa_bbb-ccc-dd1-ee2-ff3-123.456.789-auto202406202146" | sed 's/.*-\([0-9]\+\.[0-9]\+\.[0-9]\+-.*\)$/\1/'

このコマンドの説明は以下の通りです:

  1. echo "aaa_bbb-ccc-dd1-ee2-ff3-123.456.789-auto202406202146" は、サンプル文字列を出力します。
  2. sed 's/.*-\([0-9]\+\.[0-9]\+\.[0-9]\+-.*\)$/\1/' は、sedコマンドを使って文字列を変換します。
    • .*- は、文字列の最初の部分にマッチし、- で終わる部分までをキャプチャしません。
    • \([0-9]\+\.[0-9]\+\.[0-9]\+-.*\) は、-数字.数字.数字-文字列 のパターンをキャプチャします。
    • \1 は、キャプチャした部分を参照します。

このコマンドを実行すると、指定された文字列の後半部分が抽出されます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0