diff --git a/man/systemd-id128.xml b/man/systemd-id128.xml
index 22115504513..6cb51fa777f 100644
--- a/man/systemd-id128.xml
+++ b/man/systemd-id128.xml
@@ -96,6 +96,14 @@
+
+
+
+
+ Only print the value. May be combined with
+ /.
+
+
diff --git a/src/id128/id128.c b/src/id128/id128.c
index a8c5c9ac6cf..c22376d4fcd 100644
--- a/src/id128/id128.c
+++ b/src/id128/id128.c
@@ -16,6 +16,7 @@
static Id128PrettyPrintMode arg_mode = ID128_PRINT_ID128;
static sd_id128_t arg_app = {};
+static bool arg_value = false;
static int verb_new(int argc, char **argv, void *userdata) {
return id128_print_new(arg_mode);
@@ -85,7 +86,10 @@ static int show_one(Table **table, const char *name, sd_id128_t uuid, bool first
puts("");
return 0;
- } else {
+ } else if (arg_value)
+ return id128_pretty_print(uuid, arg_mode);
+
+ else {
if (!*table) {
*table = table_new("name", "id");
if (!*table)
@@ -191,6 +195,7 @@ static int parse_argv(int argc, char *argv[]) {
{ "help", no_argument, NULL, 'h' },
{ "version", no_argument, NULL, ARG_VERSION },
{ "pretty", no_argument, NULL, 'p' },
+ { "value", no_argument, NULL, 'P' },
{ "app-specific", required_argument, NULL, 'a' },
{ "uuid", no_argument, NULL, 'u' },
{},
@@ -201,7 +206,7 @@ static int parse_argv(int argc, char *argv[]) {
assert(argc >= 0);
assert(argv);
- while ((c = getopt_long(argc, argv, "hpa:u", options, NULL)) >= 0)
+ while ((c = getopt_long(argc, argv, "hpa:uP", options, NULL)) >= 0)
switch (c) {
case 'h':
@@ -212,6 +217,13 @@ static int parse_argv(int argc, char *argv[]) {
case 'p':
arg_mode = ID128_PRINT_PRETTY;
+ arg_value = false;
+ break;
+
+ case 'P':
+ arg_value = true;
+ if (arg_mode == ID128_PRINT_PRETTY)
+ arg_mode = ID128_PRINT_ID128;
break;
case 'a':
diff --git a/test/units/testsuite-74.id128.sh b/test/units/testsuite-74.id128.sh
index 213333d9d1f..4e2e1257dc9 100755
--- a/test/units/testsuite-74.id128.sh
+++ b/test/units/testsuite-74.id128.sh
@@ -9,7 +9,8 @@ set -o pipefail
systemd-id128 --help
systemd-id128 help
systemd-id128 show
-systemd-id128 show --pretty | tail -n10
+systemd-id128 show --pretty | tail
+systemd-id128 show --value | tail
systemd-id128 show 4f68bce3e8cd4db196e7fbcaf984b709 # root-x86-64
systemd-id128 show --pretty 4f68bce3e8cd4db196e7fbcaf984b709