2

sed を使用して一致パターンを出力したい、たとえば:
uuid を取得したいので、これを使用できます:
blkid $1 | grep -o -E "[a-f0-9-]{8}([a-f0-9-]{4}){3}[a-f0-9-]{12}"
sed または awk を使用してこれを行うにはどうすればよいですか?

4

6 に答える 6

4

sed

sed -n 's/pattern/&/p' file

-nsed静かに言うこと、&文字列を一致させることp、印刷することです。

awk

awk '/pattern/' file

あなたの場合、に変更patternして、エスケープするため[a-f0-9-]{8}([a-f0-9-]{4}){3}[a-f0-9-]{12}に使用する必要があるかもしれません。\[

于 2012-09-20T09:34:06.343 に答える
3

あなたはこれを求めている?

awk:

kent$  echo '/dev/sda6: UUID="c6e3ce88-f44e-4261-9178-042db8423081" TYPE="ext3"'|awk -F'UUID="|" ' '{print $2}'
c6e3ce88-f44e-4261-9178-042db8423081

シード:

kent$  echo '/dev/sda6: UUID="c6e3ce88-f44e-4261-9178-042db8423081" TYPE="ext3"'|sed -r 's/.*UUID="([^"]*).*"/\1/g'
c6e3ce88-f44e-4261-9178-042db8423081
于 2012-09-20T09:33:38.350 に答える
1
blkid | sed -nr 's/^.+UUID="(.*?)" .+$/\1/p'
于 2012-09-20T10:24:28.917 に答える
0

使用する:

sed -n 's/.*\(Pattern\).*/\1/p'

テスト済み

echo "< TextValue > Start < /TextValue >" < TextValue > Start < /TextValue > echo "< TextValue > Start < /TextValue >" | sed -n の/. (始める)。/\1/p' 開始

于 2012-09-20T11:45:03.727 に答える
0

awk および sed ソリューション:

$ blkid /dev/sda2 | sed -e 's/.*UUID="\([0-9A-F]*\).*/\1/'
16A42BA2A42B837B

$ blkid /dev/sda2 | awk '{split($2, tmp, "=") ; print tmp[2]}'
"16A42BA2A42B837B"

$ blkid /dev/sda2 | awk -F'UUID="|"' '{print $2}'
16A42BA2A42B837B
于 2012-09-20T09:35:12.453 に答える