sed を使用して一致パターンを出力したい、たとえば:
uuid を取得したいので、これを使用できます:
blkid $1 | grep -o -E "[a-f0-9-]{8}([a-f0-9-]{4}){3}[a-f0-9-]{12}"
sed または awk を使用してこれを行うにはどうすればよいですか?
質問する
2954 次
6 に答える
4
sed
sed -n 's/pattern/&/p' file
-n
sed
静かに言うこと、&
文字列を一致させること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 に答える