J'ai besoin que les champs retournés par dpkg -l soient séparés par des tabulations mais sans les en-têtes et la colonne "ii".
La sortie par défaut:
$ dpkg -l grep
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==============-============-============-=================================
ii grep 2.16-1 AMD64 GNU grep, egrep and fgrep
Ma sortie souhaitée:
grep 2.16-1 AMD64 GNU grep, egrep and fgrep
dpkg
n'est pas approprié dans votre cas, préférez la commande dpkg-query
. Avec le dpkg-query
, vous pouvez sélectionner le type de champs souhaité (et éventuellement le séparateur):
$ dpkg-query -W -f='${binary:Package}\t${Version}\t${Architecture}\t${binary:Summary}\n' grep
grep 2.16-1 AMD64 GNU grep, egrep and fgrep
Voir la dpkg-query page de manuel pour plus d'options (en particulier l'option -f --showformat
)
Pour référence:
-W, --show [package-name-pattern...]
Just like the --list option this will list all packages matching
the given pattern. However the output can be customized using
the --showformat option. The default output format gives one
line per matching package, each line having the name (extended
with the architecture qualifier for Multi-Arch same packages)
and installed version of the package, separated by a tab.
-f, --showformat=format
This option is used to specify the format of the output --show
will produce. The format is a string that will be output for
each package listed.
In the format string, “\” introduces escapes:
\n newline
\r carriage return
\t tab
“\” before any other character suppresses any special meaning of
the following character, which is useful for “\” and “$”.
Package information can be included by inserting variable refer‐
ences to package fields using the syntax “${field[;width]}”.
Fields are printed right-aligned unless the width is negative in
which case left alignment will be used. The following fields are
recognized but they are not necessarily available in the status
file (only internal fields or fields stored in the binary pack‐
age end up in it):
Architecture
Bugs
Conffiles (internal)
Config-Version (internal)
Conflicts
Breaks
Depends
Description
Enhances
Essential
Filename (internal, front-end related)
Homepage
Installed-Size
MD5sum (internal, front-end related)
MSDOS-Filename (internal, front-end related)
Maintainer
Origin
Package
Pre-Depends
Priority
Provides
Recommends
Replaces
Revision (obsolete)
Section
Size (internal, front-end related)
Source
Status (internal)
Suggests
Tag (usually not in .deb but in repository Packages files)
Triggers-Awaited (internal)
Triggers-Pending (internal)
Version
The following are virtual fields, generated by dpkg-query from
values from other fields (note that these do not use valid names
for fields in control files):
binary:Package
binary:Summary
db:Status-Abbrev
source:Package
source:Version
The default format string is “${binary:Package}\t${Version}\n”.
Actually, all other fields found in the status file (i.e. user
defined fields) can be requested, too. They will be printed as-
is, though, no conversion nor error checking is done on them.
binary:Package is a special field that will print the package
name with an architecture qualifier (like "libc6:AMD64") if the
package has a Multi-Arch field with a value of same, and as such
its name could be ambiguous.