The current implementation uses both 'grep' and 'awk' for text processing
here, which may be alright as a quick solution to be run on the command
line. While in a script, 'sed' or 'awk' would be a better choice. On
top of that, the current implementation expects the version number to
be found in the last field as seen by 'awk'. Should the output format
be different, this approach would no longer be reliable.

The proposed implementation uses 'sed' as a more flexible tool to handle
varying output formats.

Tested on:
Gentoo Linux
Debian 6.0.10
Oracle Linux Server release 7.1
Arch Linux
openSuSE 13.2


Signed-off-by: Alexander Kapshuk <alexander.kaps...@gmail.com>
---

--- linux/scripts/ver_linux.orig    2015-08-30 21:34:09.000000000 +0300
+++ linux/scripts/ver_linux    2015-09-30 22:56:24.369203827 +0300
@@ -68,8 +68,12 @@
 ls -l /usr/lib/libg++.so /usr/lib/libstdc++.so  2>/dev/null | awk -F. \
        '{print "Linux C++ Library      " $4"."$5"."$6}'

-ps --version 2>&1 | grep version | awk \
-'NR==1{print "Procps                ", $NF}'
+ps --version 2>&1 |
+sed '
+    /version/!d
+    s/[^0-9.]//g
+    s/^/Procps\t\t\t/
+'

 ifconfig --version 2>&1 | grep tools | awk \
 'NR==1{print "Net-tools             ", $NF}'
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to