El procesamiento de texto refiere a la creación y manipulación de texto en formato electronico de manera automatizada, entendiendo el texto no solo como el conjunto de caracteres alfanuméricos sino como el conjunto de cualquier caracter codificado.

Linux viene acompañado por defecto con un extenso grupo de utilidades para el procesamiento de texto (debido a la fuerte dependencia de archivos de texto para su configuración). Lenguajes como python vienen con modulos de procesamiento de texto básicos incluidos en su núcleo.

Acciones comprendidas como procesamiento de texto son:

  • Búsqueda de texto.
  • Reemplazo de texto.
  • Filtrado de texto.
  • Generación de texto.
  • Formateo de texto.

Nos enfocaremos en lo básico de las utilidades de linux, y se invita al estudiante a realizar la exploración del modulo de python.

Codificación de caracteres

ASCII

Corresponde a la codificación estandar definida para la representación de caracteres, basada en el uso de 7 bits inicialmente y luego presentada en versión extendida a 8 bits (ISO 8859, ampliamente extendido el 8859-1) para la inclusión de caracteres adicionales de lenguas diferentes al inglés.

A continuación se presenta una imagen con la codificación asociada al ISO 8859-1.

UTF8

Posee compatibilidad con el código ASCII y usa representación de hasta cuatro códigos de 8 bits (ASCII extendido es un código de 8 bits). Esta ampliación permite el soporte de una gran diversidad de caracteres sin la necesidad de una indicación particular para su soporta, sin embargo esto requiere un mayor consumo de memoria en algunos lenguajes o presentar problemas de compatibilidad con codificaciones especificas anteriores. Actualmente su uso se ha generalizado superando por mucho a la codificación ASCII.

Expresiones regulares

El primer acercamiento necesario para el procesamiento de texto se relaciona con las expresiones regulares, que corresponden a secuencias de caracteres que definen un patrón de búsqueda. Lo primero para entender este acercamiento es distinguir entre metacaracteres y caracteres literales.

  • Metacaracteres: Son caracteres especiales dentro del minilenguaje especificado en las expresiones regulares usados para definir secuencias de patrones: ^ $ . [ ] { } - ? * + ( ) | \.
  • Literales: Son caracteres que se interpretan tal cual son (todos los demás caracteres que no son metacaracteres). Si se desea usar un metacaracter como elemento exacto de coincidencia es necesario usar el caracter de escape \ precediendolo.

Para la prueba de las expresiones regulares crearemos inicialmente un archivo con datos para su búsqueda.


In [1]:
%%bash
ls /bin > test_regexp
ls /usr/bin >> test_regexp
ls /sbin >> test_regexp
ls /usr/sbin >> test_regexp
more test_regexp


::::::::::::::
test_regexp
::::::::::::::
bash
bunzip2
busybox
bzcat
bzcmp
bzdiff
bzegrep
bzexe
bzfgrep
bzgrep
bzip2
bzip2recover
bzless
bzmore
cat
chacl
chgrp
chmod
chown
chvt
cp
cpio
dash
date
dd
df
dir
dmesg
dnsdomainname
domainname
dumpkeys
echo
ed
efibootmgr
egrep
false
fgconsole
fgrep
findmnt
fuser
fusermount
getfacl
grep
gunzip
gzexe
gzip
hciconfig
hostname
ip
journalctl
kbd_mode
kill
kmod
less
lessecho
lessfile
lesskey
lesspipe
ln
loadkeys
login
loginctl
lowntfs-3g
ls
lsblk
lsmod
mkdir
mknod
mktemp
more
mount
mountpoint
mt
mt-gnu
mv
nano
nc
nc.openbsd
netcat
netstat
networkctl
nisdomainname
ntfs-3g
ntfs-3g.probe
ntfs-3g.secaudit
ntfs-3g.usermap
ntfscat
ntfscluster
ntfscmp
ntfsfallocate
ntfsfix
ntfsinfo
ntfsls
ntfsmove
ntfstruncate
ntfswipe
open
openvt
pidof
ping
ping6
plymouth
ps
pwd
rbash
readlink
red
rm
rmdir
rnano
run-parts
sed
setfacl
setfont
setupcon
sh
sh.distrib
sleep
ss
static-sh
stty
su
sync
systemctl
systemd
systemd-ask-password
systemd-escape
systemd-hwdb
systemd-inhibit
systemd-machine-id-setup
systemd-notify
systemd-tmpfiles
systemd-tty-ask-password-agent
tailf
tar
tempfile
touch
true
udevadm
ulockmgr_server
umount
uname
uncompress
unicode_start
vdir
vmmouse_detect
wdctl
which
whiptail
ypdomainname
zcat
zcmp
zdiff
zegrep
zfgrep
zforce
zgrep
zless
zmore
znew
[
2to3
2to3-2.7
2to3-3.5
411toppm
7z
7za
a2ping
a5toa4
aa-enabled
aclocal
aclocal-1.15
aconnect
acpi_listen
activate-global-python-argcomplete3
add-apt-repository
addpart
add-patch
addr2line
adhocfilelist
afm2afm
afm2pl
afm2tfm
aleph
align_image_stack
allcm
allec
allneeded
alsabat
alsaloop
alsamixer
alsamixergui
alsatplg
alsaucm
ambiguous_words
amidi
amixer
amuFormat.sh
animate
animate-im6
annotate-output
ant
antimicro
antlr3
any2djvu
anytopnm
aot-compile
apg
apgbfm
aplay
aplaymidi
apm
appletviewer
apport-bug
apport-cli
apport-collect
apport-unpack
appres
apropos
apt
apt-add-repository
apt-cache
apt-cdrom
apt-config
aptdcon
apt-extracttemplates
apt-ftparchive
apt-get
apt-key
apt-mark
apt-sortpkgs
ar
arandr
arara
arch
archpath
arecord
arecordmidi
arlatex
arm2hpdl
as
asan_symbolize
asan_symbolize-3.8
asciitopgm
as_client
aseqdump
aseqnet
aspell
aspell-import
as_run
assistant
assistant-qt4
aster
astk
asy
at
atktopbm
atobm
atom
atq
atrm
audacity
authorindex
autoconf
autoheader
autoinst
autom4te
automake
automake-1.15
automoc4
autooptimiser
autopoint
autoreconf
autoscan
autotrace
autoupdate
average.x
awk
babel
band_plot.x
bands_FS.x
bands.x
base32
base64
basename
bashbug
batch
bbox
bc
bccmd
bdftopcf
bdftruncate
bibdoiadd
bibexport
bibtex
bibtex8
bibtex.original
bibtexu
bibzbladd
bioradtopgm
bitmap
blender
blenderplayer
blueman-adapters
blueman-applet
blueman-assistant
blueman-browse
blueman-manager
blueman-report
blueman-sendto
blueman-services
bluemoon
bluetoothctl
bluetooth-sendto
bluetooth-wizard
bmptopnm
bmptoppm
bmtoa
bootctl
broadwayd
brushtopbm
bsd-from
bsd-write
bsf
btattach
btmgmt
btmon
bts
bugpoint
bugpoint-3.8
build-rdeps
bundledoc
busctl
bzz
c++
c2ph
c44
c89
c89-gcc
c99
c99-gcc
cabextract
caca-config
cachepic
cal
calc_tickadj
calendar
calibrate_lens_gui
calibrate_ppa
calibre
calibre-complete
calibre-customize
calibredb
calibre-debug
calibre-parallel
calibre-server
calibre-smtp
callgrind_annotate
callgrind_control
camlp4
camlp4boot
camlp4o
camlp4of
camlp4of.opt
camlp4oof
camlp4oof.opt
camlp4o.opt
camlp4orf
camlp4orf.opt
camlp4prof
camlp4r
camlp4rf
camlp4rf.opt
camlp4r.opt
cancel
captoinfo
catchsegv
catman
cautious-launcher
cb_console_runner
cb_share_config
cc
cdbs-edit-patch
cd-create-profile
cd-fix-profile
cd-iccdump
cd-it8
celeste_standalone
cert-sync
c++filt
cg_annotate
cg_diff
cgm
cg_merge
chacl
chage
chardet
chardet3
chardetect
chardetect3
charmap
chattr
chcon
chdist
checkbashisms
check-language-support
checklistings
checkpto
checkXML
chfn
chrt
chsh
c-index-test
c-index-test-3.8
ciptool
cjb2
ckbcomp
ckeygen
cksum
clang
clang++
clang-3.8
clang++-3.8
clang-apply-replacements
clang-apply-replacements-3.8
clang-check
clang-check-3.8
clang-cl-3.8
clang-query
clang-query-3.8
clang-rename-3.8
clang-tblgen
classifier_tester
clear
clear_console
clementine
clementine-tagreader
cli
cli-gacutil
cmp
cmuwmtopbm
cntraining
codeaster
codeaster-client
codeaster-get
codeaster-gui
codeaster-parallel_cp
codeblocks
codepage
codesnippets
col
colcrt
colormgr
colrm
column
combinediff
combine_tessdata
comm
compare
compare-im6
compose
composite
composite-im6
conch
conchftp
conjure
conjure-im6
convert
convert-im6
corelist
cowpoke
cpaldjvu
cpan
cpan5.22-x86_64-linux-gnu
cpclean
cpfind
cpp
cpp-5
cppp.x
cp.x
crc32
createfontdatachunk
createfontdatachunk.py
credentials-preferences
c_rehash
crontab
cs2cs
csepdjvu
csplit
csscapture
csscapture_py2
csscombine
csscombine_py2
cssparse
cssparse_py2
ctags
ctags.emacs24
ctangle
ctanify
ctanupload
ctie
ctstat
cups-calibrate
cups-config
cupstestdsc
cupstestppd
curl
curl-config
cut
cvlc
cvs-debc
cvs-debi
cvs-debrelease
cvs-debuild
cvt
cweave
d3.x
dawg2wordlist
dbus-cleanup-sockets
dbus-daemon
dbus-launch
dbus-monitor
dbus-run-session
dbus-send
dbus-update-activation-environment
dbus-uuidgen
dc
dch
dcmd
dconf
dcontrol
dcut
ddjvu
dd-list
deallocvt
debc
debchange
debcheckout
debclean
debcommit
debconf
debconf-apt-progress
debconf-communicate
debconf-copydb
debconf-escape
debconf-gettextize
debconf-set-selections
debconf-show
debconf-updatepo
debdiff
debi
debpkg
debrelease
deb-reversion
debrsign
debsign
debsnap
deb-systemd-helper
deb-systemd-invoke
debuild
debuild-pbuilder
deghosting_mask
dehtmldiff
delpart
de-macro
demux
dep3changelog
depythontex
depythontex3
derb
designer
designer-qt4
desktop2menu
desktop-file-edit
desktop-file-install
desktop-file-validate
detex
devdump
devnag
dfu-tool
dget
dh
dh_auto_build
dh_auto_clean
dh_auto_configure
dh_auto_install
dh_autoreconf
dh_autoreconf_clean
dh_auto_test
dh_autotools-dev_restoreconfig
dh_autotools-dev_updateconfig
dh_bash-completion
dh_bugfiles
dh_builddeb
dh_clean
dh_compress
dh_desktop
dh_dkms
dh_fixperms
dh_gconf
dh_gencontrol
dh_gstscancodecs
dh_icons
dh_install
dh_installcatalogs
dh_installchangelogs
dh_installcron
dh_installdeb
dh_installdebconf
dh_installdirs
dh_installdocs
dh_installemacsen
dh_installexamples
dh_installgsettings
dh_installifupdown
dh_installinfo
dh_installinit
dh_installlogcheck
dh_installlogrotate
dh_installman
dh_installmanpages
dh_installmenu
dh_installmime
dh_installmodules
dh_installpam
dh_installppp
dh_installtex
dh_installudev
dh_installwm
dh_installxfonts
dh_installxmlcatalogs
dh_link
dh_lintian
dh_listpackages
dh_makeshlibs
dh_md5sums
dh_movefiles
dh_nativejava
dh_numpy
dh_numpy3
dh_perl
dh_prep
dh_pypy
dh_python2
dh_python3
dh_python-ply
dh_scour
dh_scrollkeeper
dh_shlibdeps
dh_sip3
dh_strip
dh_strip_nondeterminism
dh_suidregister
dh_testdir
dh_testroot
dh_translations
dh_ucf
dh_undocumented
dh_update_autotools_config
dh_usrlocal
dia
dia-normal
dia-normal-integrated
diff
diff2patches
diff3
diffstat
dig
dircolors
dirname
dirsplit
disdvi
display
display-im6
dist.x
djvm
djvmcvt
djvudigital
djvudump
djvuextract
djvumake
djvups
djvused
djvutoxml
djvutxt
djvuxmlparser
dmenu
dmenu_path
dmenu_run
dm-tool
do-release-upgrade
dosepsbin
dos.x
dotlockfile
dpkg
dpkg-architecture
dpkg-buildflags
dpkg-buildpackage
dpkg-checkbuilddeps
dpkg-deb
dpkg-depcheck
dpkg-distaddfile
dpkg-divert
dpkg-genbuilddeps
dpkg-genchanges
dpkg-gencontrol
dpkg-gensymbols
dpkg-maintscript-helper
dpkg-mergechangelogs
dpkg-name
dpkg-parsechangelog
dpkg-query
dpkg-scanpackages
dpkg-scansources
dpkg-shlibdeps
dpkg-source
dpkg-split
dpkg-statoverride
dpkg-trigger
dpkg-vendor
dput
dropbox
dscextract
dscverify
dt2dv
dtxgen
du
dumpkeys
dunst
dv2dt
dvi2fax
dvi2tty
dviasm
dvibook
dviconcat
dvicopy
dvihp
dvilj
dvilj2p
dvilj4
dvilj4l
dvilj6
dvilualatex
dviluatex
dvipdf
dvipdfm
dvipdfmx
dvipdft
dvipos
dvips
dvired
dviselect
dvisvgm
dvitodvi
dvitomp
dvitype
dwp
dynmat.x
e2pall
easy_install3
easy_spice
ebb
ebook-convert
ebook-device
ebook-edit
ebook-meta
ebook-polish
ebook-viewer
ebrowse
ebrowse.emacs24
edit
editdiff
editor
edit-patch
editres
eject
elfedit
ElmerFront
ElmerGrid
ElmerMesh2D
ElmerParam
ElmerPost
ElmerSolver
ElmerSolver_mpi
em++
emacs
emacs24
emacs24-lucid
emacsclient
emacsclient.emacs24
emar
emcc
emcc.py
em-config
emconfigure
emmake
emranlib
emscons
emscripten.py
enblend
enblend-mp
enc2xs
encguess
enfuse
enfuse-mp
enhancer
enhancer.py
env
envsubst
eps2eps
epsffit
epsilon.x
epspdf
epspdftk
epstopdf
eptex
eqn
erb
erb2.3
esc-m
etags
etags.emacs24
etex
euptex
evemu-describe
evemu-device
evemu-event
evemu-play
evemu-record
evince
evince-previewer
evince-thumbnailer
evtest
ev.x
ex
exceltex
exiftool
exmendis
exmenen
expand
expiry
explode
explode.py
expr
extcheck
extractbb
extractres
extresso
eyuvtoppm
f2py
f2py2.7
f2py3
f2py3.5
f77
f95
factor
faillog
faked-sysv
faked-tcp
fakeroot
fakeroot-sysv
fakeroot-tcp
fallocate
fbreader
FBReader
fc-cache
fc-cat
fcitx
fcitx-autostart
fcitx-config-gtk
fcitx-configtool
fcitx-dbus-watcher
fcitx-diagnose
fcitx-remote
fcitx-skin-installer
fc-list
fc-match
fc-pattern
fc-query
fc-scan
fc-validate
fetch-ebook-metadata
ffcfstress
ffmpeg
ffmpegthumbnailer
ffmvforce
ffplay
ffprobe
ffserver
ffset
fftest
fftwf-wisdom
fftwl-wisdom
fftwq-wisdom
fftw-wisdom
fftw-wisdom-to-conf
fiascotopnm
fidentify
fig4latex
file
file2brl
file-roller
filterdiff
find
findhyph
firefox
fitstopnm
fixcvsdiff
fixdlsrps
fixfmps
fixmsxpart
fixpsditps
fixpspps
fix-qdf
fixscribeps
fixtpps
fixwfwps
fixwpps
fixwwps
flash-player-properties
flipdiff
flock
fmt
fmtutil
fmtutil-sys
fold
font2c
fontinst
fonttosfnt
foo2hbpl2
foo2hbpl2-wrapper
foo2hiperc
foo2hiperc-wrapper
foo2hp
foo2hp2600-wrapper
foo2lava
foo2lava-wrapper
foo2oak
foo2oak-wrapper
foo2qpdl
foo2qpdl-wrapper
foo2slx
foo2slx-wrapper
foo2xqx
foo2xqx-wrapper
foo2zjs
foo2zjs-icc2ps
foo2zjs-pstops
foo2zjs-wrapper
foomatic-rip
fqha.x
free
freecad
freecadcmd
freetype-config
from
fstopgm
ftp
fulla
funzip
fwupdate
fwupdmgr
g++
g3topbm
g++-5
gacutil
galculator
gamma4scanimage
gapplication
gattrib
gatttool
gawk
gcc
gcc-5
gcc-ar
gcc-ar-5
gcc-nm
gcc-nm-5
gcc-ranlib
gcc-ranlib-5
gconf-merge-tree
gconftool
gconftool-2
gcore
gcov
gcov-5
gcov-tool
gcov-tool-5
gcr-viewer
gdb
gdb-add-index
gdbserver
gdbtui
gdbus
gdbus-codegen
gdebi
gdebi-gtk
gdialog
gdk-pixbuf-csource
gdk-pixbuf-pixdata
gdk-pixbuf-query-loaders
gdm-control
GebhardtFactors
gem
gem2.3
gemtopbm
gemtopnm
genbrk
gencat
gencfu
gencnval
gendict
generate_vdW_kernel_table.x
genisoimage
genrb
genresscript
geocpset
geod
geogebra
geqn
GET
getafm
getbuildlog
getconf
geteltorito
getent
getfacl
getkeycodes
getmapdl
getopt
gettext
gettextize
gettext.sh
gfortran
gfortran-5
gftodvi
gftopk
gftype
ghostscript
gif2h5
gifmaker
gifmaker.py
giftopnm
gimp
gimp-2.8
gimp-console
gimp-console-2.8
ginstall-info
gio-querymodules
gipddecode
git
git-receive-pack
git-shell
git-upload-archive
git-upload-pack
gkbd-keyboard-display
gksu
gksudo
gksu-properties
glib-compile-resources
glib-compile-schemas
glib-genmarshal
glib-gettextize
glib-mkenums
gm
gmicparser
gmsh
gmx
gmx_d
gnetlist
gnome-character-map
gnome-disk-image-mounter
gnome-disks
gnome-file-share-properties
gnome-help
gnome-keyring
gnome-keyring-3
gnome-keyring-daemon
gnome-language-selector
gnome-mplayer
gnome-open
gnome-screenshot
gnome-session
gnome-session-inhibit
gnome-session-properties
gnome-session-quit
gnome-text-editor
gnome-www-browser
gnuplot
gnuplot4
gnuplot4-x11
gnuplot5
gnuplot5-qt
gobject-query
gold
google-chrome
google-chrome-beta
gouldtoppm
gparted-pkexec
gpasswd
gpg
gpg2
gpg-agent
gpgconf
gpg-connect-agent
gpgparsemail
gpgsplit
gpgv
gpg-zip
gpic
gpicview
gprof
gpu-manager
grep-aptavail
grep-available
grep-changelog
grep-changelog.emacs24
grep-dctrl
grep-debtags
grepdiff
grep-excuses
grep-status
gresistor
gresource
groff
grog
grops
grotty
groups
grub-editenv
grub-file
grub-fstest
grub-glue-efi
grub-kbdcomp
grub-menulst2cfg
grub-mkfont
grub-mkimage
grub-mklayout
grub-mknetdir
grub-mkpasswd-pbkdf2
grub-mkrelpath
grub-mkrescue
grub-mkstandalone
grub-mount
grub-ntldr-img
grub-render-label
grub-script-check
grub-syslinux2cfg
gs
gsbj
gschem
gsdj
gsdj500
gsettings
gsettings-data-convert
gsettings-schema-convert
gsftopk
gsl-config
gslj
gslp
gsnd
gst-codec-info-1.0
gsymcheck
gtbl
gtester
gtester-report
gtf
gtk-builder-tool
gtk-launch
gtk-recordmydesktop
gtk-update-icon-cache-3.0
gucharmap
guvcview
gvfs-cat
gvfs-copy
gvfs-info
gvfs-less
gvfs-ls
gvfs-mime
gvfs-mkdir
gvfs-monitor-dir
gvfs-monitor-file
gvfs-mount
gvfs-move
gvfs-open
gvfs-rename
gvfs-rm
gvfs-save
gvfs-set-attribute
gvfs-trash
gvfs-tree
h2ph
h2xs
h4fromh5
h52gif
h5c++
h5cc
h5copy
h5debug
h5diff
h5dump
h5fc
h5fromh4
h5fromtxt
h5import
h5jam
h5ls
h5math
h5mkgrp
h5perf_serial
h5redeploy
h5repack
h5repart
h5stat
h5topng
h5totxt
h5tovtk
h5unjam
hardening-check
hardinfo
hbpldecode
hciattach
hcitool
hd
head
HEAD
helpztags
hex2hcd
hexdump
hipercdecode
hipstopgm
host
hostid
hostnamectl
hp-align
hp-check
hp-clean
hp-colorcal
hp-config_usb_printer
hp-doctor
hp-firmware
hp-info
hp-levels
hp-logcapture
hp-makeuri
hp-pkservice
hp-plugin
hp-plugin-ubuntu
hp-probe
hp-query
hp-scan
hp-setup
hp-testpage
hp-timedate
hugin
hugin_executor
hugin_hdrmerge
hugin_lensdb
hugin_stitch_project
i3
i386
i3bar
i3-config-wizard
i3-dmenu-desktop
i3-dump-log
i3-input
i3lock
i3-migrate-config-to-v4
i3-msg
i3-nagbar
i3-save-tree
i3-sensible-editor
i3-sensible-pager
i3-sensible-terminal
i3status
i3-with-shmlog
i686-linux-gnu-pkg-config
ibus
ibus-daemon
ibus-setup
iceauth
ico
icontopbm
iconv
icotool
icpfind
icu-config
icuinfo
id
identify
identify-im6
idlj
iecset
ifnames
igawk
ijs_pxljr
ilbmtoppm
imagetops
im-config
imgsize
imgtoppm
im-launch
import
import-im6
includeres
info
infobrowser
infocmp
infotocap
inimf
init-checkconf
initctl2dot
initex
initial_state.x
inkscape
inkview
innochecksum
innotop
inputattach
install
installfont-tl
install-info
install-menu
install-printerdriver
instmodsh
interdiff
intltool-extract
intltoolize
intltool-merge
intltool-prepare
intltool-update
invgeod
invproj
ionice
iotk_print_kinds.x
iotk.x
ipcmk
ipcrm
ipcs
iptables-xml
irb
irb2.3
ischroot
isdv4-serial-debugger
isdv4-serial-inputattach
isodump
isoinfo
isovfy
ispell-wrapper
ivshmem-client
ivshmem-server
jabref
jar
jarsigner
java
javac
javadoc
javah
javap
jcmd
jconsole
jdb
jdeps
jexec
jhat
jhindexer
jhsearch
jinfo
jjs
jmap
jmol
join
join-dctrl
jpegtopnm
jpgicc
jps
jrunscript
js
js24
js24-config
jsadebugd
jscal
jscal-restore
jscal-store
json_pp
json_xs
jstack
jstat
jstatd
jstest
jstest-gtk
julia
junit
kactivitymanagerd
kbdinfo
kbuildsycoca4
kbuildsycoca5
kbxutil
kcmshell4
kconfig_compiler
kcookiejar4
kcookiejar5
kde4
kde4-config
kde4-menu
kdebugdialog
kdebugdialog5
kde-cp
kded4
kdeinit4
kdeinit4_shutdown
kdeinit4_wrapper
kdeinit5
kdeinit5_shutdown
kdeinit5_wrapper
kde-mv
kde-open
keditfiletype
kerneloops-submit
keytool
kf5-config
kfile4
kglobalaccel
kglobalaccel5
khotnewstuff4
khotnewstuff-upload
kiconfinder
kiconfinder5
killall
kioclient
kjs
kjscmd
kmailservice
kmailservice5
kmimetypefinder
kmodsign
knotify4
koi8rxterm
kpackagelauncherqml
kpackagetool5
kpoints.x
kpseaccess
kpsepath
kpsereadlink
kpsestat
kpsetool
kpsewhere
kpsewhich
kpsexpand
kquitapp
kquitapp5
kreadconfig
kreadconfig5
krita
kross
kshell4
kshell5
kstart
ksvgtopng
ktelnetservice
ktelnetservice5
ktraderclient
ktrash
ktrash5
kuiserver
kunittestmodrunner
kvecs_FS.x
kvm
kvm-spice
kwalletd
kwalletd5
kwallet-query
kwrapper4
kwrapper5
kwriteconfig
kwriteconfig5
l2ping
l2test
lambda.x
lame
last
lastb
lastlog
latex
latex2man
latexdef
latexfileversion
latex-git-log
latexindent
latexml
latexmlc
latexmlfind
latexmlmath
latexmlpost
latexpand
lavadecode
lcf
lconvert
ld
ld1.x
ld.bfd
ldd
ld.gold
leafpad
leaftoppm
ledit
less
lessecho
lessfile
lesskey
lesspipe
lexgrog
libnetcfg
libpng12-config
libpng-config
libreoffice
libtoolize
licensecheck
light-locker
light-locker-command
light-locker-settings
line
linefind
linguist
linguist-qt4
link
linkicc
lintian
lintian-info
lintian-lab-tool
linux32
linux64
linux-boot-prober
linux-version
lispmtopgm
listbib
listings-ext
listres
list-unreleased
llc
llc-3.8
lli
lli-3.8
llvm-ar
llvm-ar-3.8
llvm-as
llvm-as-3.8
llvm-bcanalyzer
llvm-bcanalyzer-3.8
llvm-config
llvm-config-3.8
llvm-cov
llvm-cov-3.8
llvm-c-test-3.8
llvm-cxxdump-3.8
llvm-diff
llvm-diff-3.8
llvm-dis
llvm-dis-3.8
llvm-dsymutil-3.8
llvm-dwarfdump
llvm-dwarfdump-3.8
llvm-dwp-3.8
llvm-extract
llvm-extract-3.8
llvm-lib-3.8
llvm-link
llvm-link-3.8
llvm-lto-3.8
llvm-mc
llvm-mc-3.8
llvm-mcmarkup-3.8
llvm-nm
llvm-nm-3.8
llvm-objdump
llvm-objdump-3.8
llvm-pdbdump-3.8
llvm-profdata-3.8
llvm-ranlib
llvm-ranlib-3.8
llvm-readobj-3.8
llvm-rtdyld
llvm-rtdyld-3.8
llvm-size
llvm-size-3.8
llvm-split-3.8
llvm-stress-3.8
llvm-symbolizer-3.8
llvm-tblgen
llvm-tblgen-3.8
lnstat
loadkeys
loadunimap
lobase
localc
locale
localectl
localedef
locate
lodraw
loffice
lofromtemplate
logger
logname
loimpress
lomath
look
lorder
loweb
lowriter
lp
lpoptions
lpq
lpr
lprm
lp_solve
lpstat
lrelease
lrelease-qt4
lrf2lrs
lrfviewer
lrs2lrf
lsattr
lsb_release
lscpu
lsdiff
lshw
lsinitramfs
lsipc
lslocks
lslogins
lsof
lspci
lspgpot
lsusb
lsw
lsx
ltrace
ltx2crossrefxml
ltxfileinfo
ltximg
luajittex
lualatex
luatex
lubuntu-logout
lubuntu-software-center
luit
lupdate
lupdate-qt4
lwp-download
lwp-dump
lwp-mirror
lwp-request
lxappearance
lxclipboard
lxde-logout
lxinput
lxlauncher
lxlock
lxpanel
lxpanelctl
lxpolkit
lxsession
lxsession-db
lxsession-default
lxsession-default-apps
lxsession-default-terminal
lxsession-logout
lxsession-xdg-autostart
lxsession-xsettings
lxsettings-daemon
lxshortcut
lxtask
lxterm
lxterminal
lz
lzcat
lzcmp
lzdiff
lzegrep
lzfgrep
lzgrep
lzless
lzma
lzmainfo
lzmore
m17n-db
m4
macho-dump
macptopbm
mag
mailmail
make
make4ht
makeconv
make-first-existing-target
makeglossaries
makeglossaries-lite
makeindex
makeinfo
makejvf
makekdewidgets
man
mandb
manhole
manpage-alert
manpath
mapscrn
markdown-calibre
markdown_py
mass-bug
matc
match_parens
matdyn.x
mathspic
mattrib
mawk
maxima
mbadblocks
mcat
mcd
mcheck
mclasserase
mcomp
mcookie
mcopy
md5sum
md5sum.textutils
mdatopbm
mdel
mdeltree
mdir
mdu
meep-mpi-default
meinproc4
meinproc4_simple
mendex
mergechanges
mesg
Mesh2D
mf
mf2pt1
mf-nowin
mformat
mfplain
mft
mftraining
mgrtopbm
min12xxw
minfo
miniterm.py
mk-build-deps
mkcamlp4
mkfifo
mkfontdir
mkfontscale
mkindex
mkisofs
mkjobtexmf
mkmanifest
mk_modmap
mkocp
mkofm
mk-origtargz
mkpic
mksquashfs
mkt1font
mktexfmt
mktexlsr
mktexmf
mktexpk
mktextfm
mkzftree
mlabel
mlocate
mmcli
mmd
mmount
mmove
moc
moc-qt4
modularize-3.8
mogrify
mogrify-im6
mono
mono-sgen
montage
montage-im6
mousetweaks
mpartition
mpbi-mpi
mpb-mpi
mpic++
mpicc
mpiCC
mpicc.openmpi
mpiCC.openmpi
mpic++.openmpi
mpicxx
mpicxx.openmpi
mpiexec
mpiexec.openmpi
mpif77
mpif77.openmpi
mpif90
mpif90.openmpi
mpifort
mpifort.openmpi
mpirun
mpirun.openmpi
mplayer
mpost
mptopdf
mrd
mren
mscompress
msexpand
msgattrib
msgcat
msgcmp
msgcomm
msgconv
msgen
msgexec
msgfilter
msgfmt
msggrep
msginit
msgmerge
msgunfmt
msguniq
mshortname
mshowfat
ms_print
msxlint
mtools
mtoolstest
mtr
mtrace
mtvtoppm
mtype
multibibliography
mxtar
myisamchk
myisam_ftdump
myisamlog
myisampack
my_print_defaults
mysql
mysqladmin
mysqlanalyze
mysqlbinlog
mysqlcheck
mysql_config_editor
mysqld_multi
mysqld_safe
mysqldump
mysqldumpslow
mysql_embedded
mysqlimport
mysql_install_db
mysqloptimize
mysql_plugin
mysqlpump
mysqlrepair
mysqlreport
mysql_secure_installation
mysqlshow
mysqlslap
mysql_ssl_rsa_setup
mysql_tzinfo_to_sql
mysql_upgrade
mzip
nad2bin
namecheck
namei
native2ascii
nawk
ncal
ncurses5-config
ndg_httpclient
neb.x
neotoppm
neqn
netkit-ftp
network-admin
newgrp
ngettext
nice
nl
nm
nm-applet
nmcli
nm-connection-editor
nm-online
nmtui
nmtui-connect
nmtui-edit
nmtui-hostname
nmudiff
nodejs
nohup
nona
nproc
nroff
nsenter
nslookup
nspr-config
nstat
nsupdate
ntfsdecrypt
ntpdc
ntpq
ntpsweep
ntptrace
numfmt
numlockx
nvidia-bug-report.sh
nvidia-cuda-mps-control
nvidia-cuda-mps-server
nvidia-debugdump
nvidia-detector
nvidia-persistenced
nvidia-settings
nvidia-smi
nvidia-xconfig
nvlc
nwchem
oakdecode
obabel
obchiral
obconf
obconformer
obenergy
obexctl
obfit
obgen
obgrep
obj2yaml
obj2yaml-3.8
objcopy
objdump
obminimize
obprobe
obprop
obrms
obrotamer
obrotate
obspectrophore
obxprop
ocaml
ocamlbuild
ocamlbuild.byte
ocamlbuild.native
ocamlc
ocamlcp
ocamldebug
ocamldep
ocamldoc
ocamldumpobj
ocamlfind
ocamllex
ocamlmklib
ocamlmktop
ocamlobjinfo
ocamlopt
ocamloptp
ocamlprof
ocamlrun
ocamlyacc
oclock
octave
octave-cli
od
odbcinst
odvicopy
odvitype
ofm2opl
okular
omfonts
omnicpp
omniidl
ompi-clean
ompi_info
ompi-ps
ompi-server
ompi-top
on_ac_power
online-accounts-preferences
opalc++
opalcc
opal_wrapper
openbox
openbox-lubuntu
openbox-lxde
openbox-session
openssl
openuniverse
opl2ofm
opldecode
opt
opt-3.8
orbd
origtargz
orte-clean
orted
orte-dvm
orte-ps
orterun
orte-server
orte-submit
orte-top
os-prober
ot2kpx
otangle
otp2ocp
ots
outocp
ovf2ovp
ovp2ovf
p11-kit
pacat
pack200
pacmd
pactl
padsp
pager
painter
painter.py
palmtopnm
paman
pamcut
pamdeinterlace
pamdice
pamfile
pamoil
pamon
pamstack
pamstretch
pamstretch-gen
pandoc
pango-view
panoinfo
pano_modify
pano_trafo
paperconf
paplay
paraview
parec
parecord
parsechangelog
partx
passwd
paste
pasuspender
patch
patgen
pathchk
path_interpolation.x
pavucontrol
pavumeter
pax11publish
pbibtex
pbmclean
pbmlife
pbmmake
pbmmask
pbmpage
pbmpscale
pbmreduce
pbmtext
pbmtextps
pbmto10x
pbmtoascii
pbmtoatk
pbmtobbnbg
pbmtocmuwm
pbmtoepsi
pbmtoepson
pbmtog3
pbmtogem
pbmtogo
pbmtoicon
pbmtolj
pbmtomacp
pbmtomda
pbmtomgr
pbmtonokia
pbmtopgm
pbmtopi3
pbmtoplot
pbmtoppa
pbmtopsg3
pbmtoptx
pbmtowbmp
pbmtox10bm
pbmtoxbm
pbmtoybm
pbmtozinc
pbmupc
pcimodules
pcmanfm
pcre-config
pcxtoppm
pdb
pdb2.7
pdb3
pdb3.5
pdebuild
pdf180
pdf270
pdf2djvu
pdf2dsc
pdf2ps
pdf90
pdfannotextractor
pdfatfi
pdfbook
pdfbook2
pdfclose
pdfcrop
pdfdetach
pdfetex
pdfflip
pdffonts
pdfimages
pdfinfo
pdfjam
pdfjam-pocketmod
pdfjam-slides3up
pdfjam-slides6up
pdfjoin
pdflatex
pdfnup
pdfopen
pdfpun
pdfseparate
pdftex
pdftexi2dvi
pdftk
pdftocairo
pdftohtml
pdftoppm
pdftops
pdftosrc
pdftotext
pdfunite
pdvitomp
pdvitype
pedigree
peekfd
perl
perl5.22.1
perl5.22-x86_64-linux-gnu
perlbug
perldoc
perlivp
perltex
perlthanks
perror
pf2afm
pfarrei
pfb2pfa
pfbtopfa
pftp
pg
pgmbentley
pgmcrater
pgmedge
pgmenhance
pgmhist
pgmkernel
pgmnoise
pgmnorm
pgmoil
pgmramp
pgmslice
pgmtexture
pgmtofs
pgmtolispm
pgmtopbm
pgmtoppm
pgrep
phantomjs
phcg.x
photorec
ph.x
pi1toppm
pi3topbm
pic
pico
piconv
pilconvert
pilconvert.py
pildriver
pildriver.py
pilfile
pilfile.py
pilfont
pilfont.py
pilprint
pilprint.py
pinentry
pinentry-gnome3
pinentry-gtk-2
pinentry-x11
pinky
pip
pip2
pip3
pitivi
pixeltool
pjtoppm
pk2bm
pkaction
pkcheck
pkexec
pkfix
pkfix-helper
pkg-config
pkgdata
pkill
pktogf
pkttyagent
pktype
pl2pm
plan_avg.x
planets
plasmapkg
plasmapkg2
plasma-remote-helper
player
player.py
pldd
plog
plotband.x
plotchangelog
plotproj.x
plotrho.x
pltotf
pmap
pm-is-supported
pmpost
pmw.x
pmxab
pngtopnm
pnm2ppa
pnmalias
pnmarith
pnmcat
pnmcolormap
pnmcomp
pnmconvol
pnmcrop
pnmcut
pnmdepth
pnmenlarge
pnmfile
pnmflip
pnmgamma
pnmhisteq
pnmhistmap
pnmindex
pnminterp
pnminterp-gen
pnminvert
pnmmargin
pnmmontage
pnmnlfilt
pnmnoraw
pnmnorm
pnmpad
pnmpaste
pnmpsnr
pnmquant
pnmremap
pnmrotate
pnmscale
pnmscalefixed
pnmshear
pnmsmooth
pnmsplit
pnmtile
pnmtoddif
pnmtofiasco
pnmtofits
pnmtojpeg
pnmtopalm
pnmtoplainpnm
pnmtopng
pnmtops
pnmtorast
pnmtorle
pnmtosgi
pnmtosir
pnmtotiff
pnmtotiffcmyk
pnmtoxwd
po2debconf
po2xmi
pod2html
pod2man
pod2texi
pod2text
pod2usage
podchecker
podebconf-display-po
podebconf-report-po
podselect
poff
poff.wvdial
policytool
pon
pon.wvdial
pooltype
POST
ppdc
ppdhtml
ppdi
ppdmerge
ppdpo
pphs
ppltotf
ppm3d
ppmbrighten
ppmchange
ppmcie
ppmcolormask
ppmcolors
ppmdim
ppmdist
ppmdither
ppmfade
ppmflash
ppmforge
ppmhist
ppmlabel
ppmmake
ppmmix
ppmnorm
ppmntsc
ppmpat
ppmquant
ppmquantall
ppmqvga
ppmrainbow
ppmrelief
ppmshadow
ppmshift
ppmspread
ppmtoacad
ppmtobmp
ppmtoeyuv
ppmtogif
ppmtoicr
ppmtoilbm
ppmtojpeg
ppmtoleaf
ppmtolj
ppmtomap
ppmtomitsu
ppmtompeg
ppmtoneo
ppmtopcx
ppmtopgm
ppmtopi1
ppmtopict
ppmtopj
ppmtopuzz
ppmtorgb3
ppmtosixel
ppmtotga
ppmtouil
ppmtowinicon
ppmtoxpm
ppmtoyuv
ppmtoyuvsplit
ppmtv
pp-trace
pp.x
pr
precat
preconv
prename
preparetips
preparetips5
prepmx
preunzip
prezip
prezip-bin
prime-select
prime-supported
print
printafm
printenv
printerbanner
printer-profile
printf
prlimit
proj
projwfc.x
protocoltojson
prove
proxy
prtstat
ps2ascii
ps2eps
ps2epsi
ps2frag
ps2pdf
ps2pdf12
ps2pdf13
ps2pdf14
ps2pdfwr
ps2pk
ps2ps
ps2ps2
ps2txt
ps4pdf
psbook
psfaddtable
psfgettable
psfstriptable
psfxtable
psicc
psidtopgm
psjoin
pslatex
psmerge
psnup
psresize
psselect
pst2pdf
pstoedit
pstopnm
pstops
pstree
pstree.x11
pstruct
ptable
ptar
ptardiff
ptargrep
PTBatcherGUI
PTblender
PTcrop
ptex
ptftopl
PTinfo
PTmasker
PTmender
pto_gen
pto_lensstack
pto_mask
pto_merge
pto_move
PToptimizer
pto_template
pto_var
PTroller
pts-subscribe
pts-unsubscribe
PTtiff2psd
PTtiffdump
PTuncrop
ptx
pulseaudio
pvbatch
pvdataserver
pvpython
pvrenderserver
pvserver
pvtk
pvtkpython
pw2gw.x
pw2wannier90.x
pwcond.x
pwdx
pw_export.x
pwi2xsf
pwi2xsf.x
pwo2xsf
pw.x
py3clean
py3compile
py3versions
pybuild
pyclean
pycompile
pydoc
pydoc2.7
pydoc3
pydoc3.5
pygettext
pygettext2.7
pygettext3
pygettext3.5
pygmentex
pygmentize
pyhtmlizer
pyside-lupdate
pyside-rcc
pyside-uic
python
python2
python2.7
python2.7-config
python2-config
python3
python3.5
python3.5-config
python3.5m
python3.5m-config
python3-config
python3m
python3m-config
python-argcomplete-check-easy-install-script3
python-config
pythontex
pythontex3
pyversions
q2r.x
qcollectiongenerator
qdbus
qdbuscpp2xml
qdbusviewer
qdbusxml2cpp
qdoc
qdoc3
qemu-img
qemu-io
qemu-launcher
qemu-nbd
qemu-system-aarch64
qemu-system-arm
qemu-system-i386
qemu-system-x86_64
qemu-system-x86_64-spice
qglinfo
qhelpconverter
qhelpgenerator
qlalr
qmake
qmake-qt4
qml
qml1plugindump
qmlbundle
qmleasing
qmlimportscanner
qmllint
qmlmin
qmlplugindump
qmlprofiler
qmlscene
qmltestrunner
qmlviewer
qpdf
qpdldecode
qrttoppm
qtchooser
qtconfig
qtdiag
qt-faststart
qtpaths
QueryGLXExt
quirks-handler
qvlc
R
rake
ranlib
rasttopnm
rawtopgm
rawtoppm
rc-alert
rcc
rcp
rctest
rdoc
rdoc2.3
readelf
readline-editor
realpath
rebuild-gcj-db
recode-sr-latin
recordmydesktop
recountdiff
rediff
register-python-argcomplete3
remote-viewer
rename
rename.ul
rendercheck
renice
replace
repstopdf
reset
resize
resizecons
resizepart
resolveip
retroarch
rev
rfcomm
rgb3toppm
rgrep
ri
ri2.3
rletopnm
rlogin
rmadison
rmic
rmid
rmiregistry
routef
routel
rpcgen
rpdfcrop
Rscript
rsh
rstart
rstartd
rsync
rtstat
ruby
ruby2.3
runantlr
runcon
run-mailcap
run-with-aspell
rview
rvlc
sadt
sancov-3.8
sane-find-scanner
savelog
sbattach
sbigtopgm
sbkeysync
sbsiglist
sbsign
sbvarsign
sbverify
SC2Elmer
scan-build
scan-build-3.8
scanimage
scan-view
scan-view-3.8
schemagen
scor2prt
scour
scp
scp-dbus-service
screendump
scribus
script
scriptreplay
scrot
sdiff
sdl2-config
sdl-config
sdptool
see
select-default-iwrap
select-editor
sensible-browser
sensible-editor
sensible-pager
seq
serialver
servertool
session-migration
sessreg
setarch
setfacl
setkeycodes
setleds
setlogcons
setmetamode
setpci
setsid
setterm
set_unicharset_properties
setxkbmap
sftp
sg
sgitopnm
sha1sum
sha224sum
sha256sum
sha384sum
sha512sum
shapeclustering
shar
shares-admin
shasum
showchar
showconsolefont
showkey
showrgb
shred
shuf
sico2elmer
signond
signonpluginprocess
signon-ui
simpdftex
simple-scan
sip
sirtopnm
size
skill
slabtop
sldtoppm
slock
slogin
slxdecode
smproxy
snap
snapctl
snice
soelim
soffice
software-properties-gtk
solid-hardware
sort
sort-dctrl
sotruss
spctoppm
speaker-test
spellintian
spice-xpi-client
spice-xpi-client-remote-viewer
splain
split
splitdiff
splitfont
splitindex
sprof
sprop
sputoppm
sqldiff
sqlite3
sqlitebrowser
sselp
ssh
ssh-add
ssh-agent
ssh-argv0
ssh-askpass
ssh-copy-id
ssh-keygen
ssh-keyscan
ssid
st4topgm
startlxde
start-nvidia-persistenced
start-pulseaudio-x11
startx
stat
stdbuf
stellarium
step
stest
stop-nvidia-persistenced
strace
stream
stream-im6
strings
strip
sty2dtx
sudo
sudoedit
sudoreplay
sum
sumpdos.x
suspicious-source
su-to-root
svlc
svn-multi
svnpath
swarp
symcryptrun
synaptic-pkexec
synclient
synctex
syndaemon
syslinux
syslinux-legacy
system-config-printer
system-config-printer-applet
systemd-analyze
systemd-cat
systemd-cgls
systemd-cgtop
systemd-delta
systemd-detect-virt
systemd-path
systemd-resolve
systemd-run
systemd-stdio-bridge
t1ascii
t1asm
t1binary
t1disasm
t1mac
t1unmac
tabbed
tabbed.default
tabbed.meta
tabs
tac
tagpending
tail
tangle
tap2deb
tap2rpm
taskset
tbl
tbl-dctrl
tca_correct
tclsh
tclsh8.5
tclsh8.6
tcltk-depends
teckit_compile
tee
telnet
telnet.netkit
tesseract
test
testdisk
tex
tex4ebook
texcount
texdef
texdiff
texdirflatten
texdoc
texdoctk
texfot
texhash
texi2any
texi2dvi
texi2pdf
texindex
texliveonfly
texloganalyser
texlua
texluac
texluajit
texluajitc
texmaker
text2image
tftopl
tgatoppm
tgz
thinkjettopbm
thresholder
thresholder.py
thumbpdf
thunderbird
tic
tie
tifftopnm
tificc
time
time-admin
timedatectl
timeout
tkconch
tlmgr
tload
tl-paper
tnameserv
toe
top
toshset
touch
tpic2pdftex
tput
tr
tracepath
tracepath6
traceroute6
traceroute6.iputils
transicc
transition-check
transmission-gtk
transset
trial
troff
truncate
trust
tset
tsort
ttf2afm
ttf2pk
ttf2tfm
ttfdump
ttfread
tty
turbo_lanczos.x
turbo_spectrum.x
twistd
txixml2texi
typeoutfileinfo
tzselect
ubuntu-bug
ubuntu-core-launcher
ubuntu-drivers
ubuntu-support-status
ucf
ucfq
ucfr
uconv
ucs2any
udisksctl
uglifyjs
uic
uic3
uic-qt4
ul
ulqda
umake
umax_pp
umbrello
unexpand
unicharset_extractor
unicode_stop
uniconvertor
uniq
unitconv
unity-control-center
unity-scope-loader
unity-settings-daemon
unlink
unlzma
unopkg
unpack200
unshar
unshare
unsquashfs
unwrapdiff
unxrandr
unxz
unzip
unzipsfx
upbibtex
update-alternatives
updatedb
updatedb.mlocate
update-desktop-database
update-gconf-defaults
update-leap
update-manager
update-menus
update-mime-database
update-mime-database.real
update-notifier
update-perl-sax-parsers
updmap
updmap-sys
updvitomp
updvitype
upmpost
upower
uppltotf
uptex
uptftopl
uptime
urlbst
usb-creator-gtk
usb-devices
usbhid-dump
usb_printerid
uscan
users
users-admin
utmpdump
uudecode
uuencode
uuidgen
uupdate
uxterm
uz
valgrind
valgrind.bin
valgrind-di-server
valgrind-listener
verdandi
verify-uselistorder
verify-uselistorder-3.8
vftovp
vgdb
vi
view
viewer
viewer.py
ViewFactors
viewres
vig_optimize
vim.tiny
virsh
virt-admin
virt-clone
virt-convert
virtfs-proxy-helper
virt-host-validate
virt-install
virt-login-shell
virt-manager
virt-pki-validate
virt-viewer
virt-xml
virt-xml-validate
vlc
vlc-wrapper
vlna
vmstat
vmwarectrl
volname
vpe
vpl2ovp
vpl2vpl
vptovf
vtk6
vtk6python
vtkEncodeString-6.2
vtkHashSource-6.2
vtkParseOGLExt-6.2
vtkWrapClientServer
vtkWrapHierarchy-6.2
vtkWrapPython-6.2
vtkWrapPythonInit-6.2
w
wall
wannier_ham.x
wannier_plot.x
watch
watchgnupg
wayland-scanner
wbmptopbm
wc
wdiff
weave
web2disk
wfdd.x
wftopfa
wget
whatis
what-patch
whereis
which
who
whoami
whodepends
whoopsie
who-permits-upload
who-uploads
winicontoppm
wish
wish8.5
wish8.6
wkhtmltoimage
wkhtmltopdf
wmf2eps
wmf2fig
wmf2gd
wmf2svg
wmf2x
wmname
wnpp-alert
wnpp-check
wofm2opl
wopl2ofm
wordlist2dawg
word-list-compress
wovf2ovp
wovp2ovf
wpa_passphrase
w.procps
wrap-and-sort
wrestool
write
wsgen
wsimport
wvdial
wvdialconf
wx-config
wxmaxima
wxrc
X
X11
x11perf
x11perfcomp
x264
x264-10bit
x86_64
x86_64-linux-gnu-addr2line
x86_64-linux-gnu-ar
x86_64-linux-gnu-as
x86_64-linux-gnu-c++filt
x86_64-linux-gnu-cpp
x86_64-linux-gnu-cpp-5
x86_64-linux-gnu-dwp
x86_64-linux-gnu-elfedit
x86_64-linux-gnu-g++
x86_64-linux-gnu-g++-5
x86_64-linux-gnu-gcc
x86_64-linux-gnu-gcc-5
x86_64-linux-gnu-gcc-ar
x86_64-linux-gnu-gcc-ar-5
x86_64-linux-gnu-gcc-nm
x86_64-linux-gnu-gcc-nm-5
x86_64-linux-gnu-gcc-ranlib
x86_64-linux-gnu-gcc-ranlib-5
x86_64-linux-gnu-gcov
x86_64-linux-gnu-gcov-5
x86_64-linux-gnu-gcov-tool
x86_64-linux-gnu-gcov-tool-5
x86_64-linux-gnu-gfortran
x86_64-linux-gnu-gfortran-5
x86_64-linux-gnu-gprof
x86_64-linux-gnu-ld
x86_64-linux-gnu-ld.bfd
x86_64-linux-gnu-ld.gold
x86_64-linux-gnu-nm
x86_64-linux-gnu-objcopy
x86_64-linux-gnu-objdump
x86_64-linux-gnu-pkg-config
x86_64-linux-gnu-python2.7-config
x86_64-linux-gnu-python3.5-config
x86_64-linux-gnu-python3.5m-config
x86_64-linux-gnu-python3-config
x86_64-linux-gnu-python3m-config
x86_64-linux-gnu-python-config
x86_64-linux-gnu-ranlib
x86_64-linux-gnu-readelf
x86_64-linux-gnu-size
x86_64-linux-gnu-strings
x86_64-linux-gnu-strip
x86_64-pc-linux-gnu-pkg-config
xargs
xasy
xauth
xbacklight
xbiff
xbmtopbm
xboxdrv
xboxdrvctl
xcalc
xchm
xclip
xclipboard
xclip-copyfile
xclip-cutfile
xclip-pastefile
xclock
xcmsdb
xconsole
xcrysden
xcursorgen
xcutsel
xdg-desktop-icon
xdg-desktop-menu
xdg-email
xdg-icon-resource
xdg-mime
xdg-open
xdg-screensaver
xdg-settings
xdg-user-dir
xdg-user-dirs-gtk-update
xdg-user-dirs-update
xditview
xdpyinfo
xdriinfo
xdvi
xdvi.bin
xdvipdfmx
xdvi-xaw
xedit
xetex
xev
xeyes
xfburn
xfce4-notifyd-config
xfce4-power-manager
xfce4-power-manager-settings
xfconf-query
xfd
xfontsel
xgamma
xgc
xgettext
xhost
ximtoppm
xinit
xinput
xjc
xkbbell
xkbcomp
xkbevd
xkbprint
xkbvleds
xkbwatch
xkeystone
xkill
xload
xlogo
xlsatoms
xlsclients
xlsfonts
xmag
xman
xmessage
xmi2pot
xml2-config
xmlcatalog
xmllint
xmlpatterns
xmlpatternsvalidator
xmms2
xmms2d
xmms2-launcher
xmodmap
xmore
Xorg
xournal
xpad
xplor2gmx
xpmtoppm
xprop
xqxdecode
xrandr
xrdb
xrefresh
xsane
x-session-manager
xset
xsetmode
xsetpointer
xsetroot
xsetwacom
xslt-config
xsm
xssstate
xstdcmap
xsubpp
xterm
x-terminal-emulator
xvidtune
xvinfo
xvminitoppm
xvt
xwd
xwdtopnm
x-window-manager
xwininfo
xwud
x-www-browser
xxd
xz
xzcat
xzcmp
xzdiff
xzegrep
xzfgrep
xzgrep
xzless
xzmore
yagf
yaml2obj
yaml2obj-3.8
ybmtopbm
yelp
yes
yplan
yuvsplittoppm
yuvtoppm
zdump
zeisstopnm
zenity
zip
zipcloak
zipdetails
zipgrep
zipinfo
zipnote
zipsplit
zjsdecode
zlib-flate
acpi_available
agetty
alsa
apm_available
apparmor_parser
badblocks
blkdiscard
blkid
blockdev
brctl
bridge
capsh
cfdisk
cgmanager
cgproxy
chcpu
crda
create-uvm-dev-node
ctrlaltdel
debugfs
depmod
dhclient
dhclient-script
dosfsck
dosfslabel
dumpe2fs
e2fsck
e2image
e2label
e2undo
ebtables
ebtables-restore
ebtables-save
fatlabel
fdisk
findfs
fsck
fsck.cramfs
fsck.ext2
fsck.ext3
fsck.ext4
fsck.ext4dev
fsck.fat
fsck.minix
fsck.msdos
fsck.nfs
fsck.vfat
fsfreeze
fstab-decode
fstrim
getcap
getpcaps
get-quirk-options
getty
halt
hdparm
hwclock
ifconfig
ifdown
ifquery
ifup
init
initctl
insmod
installkernel
ip
ip6tables
ip6tables-restore
ip6tables-save
ipmaddr
iptables
iptables-restore
iptables-save
iptunnel
isosize
iw
iwconfig
iwevent
iwgetid
iwlist
iwpriv
iwspy
kbdrate
killall5
ldconfig
ldconfig.real
logsave
losetup
lsmod
lspcmcia
MAKEDEV
mii-tool
mkdosfs
mke2fs
mkfs
mkfs.bfs
mkfs.cramfs
mkfs.ext2
mkfs.ext3
mkfs.ext4
mkfs.ext4dev
mkfs.fat
mkfs.minix
mkfs.msdos
mkfs.ntfs
mkfs.vfat
mkhomedir_helper
mkntfs
mkswap
mntctl
modinfo
modprobe
mountall
mount.fuse
mount.lowntfs-3g
mount.ntfs
mount.ntfs-3g
nameif
ntfsclone
ntfscp
ntfslabel
ntfsresize
ntfsundelete
on_ac_power
pam_extrausers_chkpwd
pam_extrausers_update
pam_tally
pam_tally2
parted
partprobe
pccardctl
pivot_root
plipconfig
plymouthd
poweroff
prime-offload
prime-switch
rarp
raw
reboot
regdbdump
reload
resize2fs
resolvconf
restart
rmmod
route
rtacct
rtmon
runlevel
runuser
setcap
setvtrgb
sfdisk
shadowconfig
shutdown
slattach
start
start-stop-daemon
status
stop
sulogin
swaplabel
swapoff
swapon
switch_root
sysctl
tc
telinit
tipc
tune2fs
u-d-c-print-pci-ids
udevadm
umount.udisks2
unix_chkpwd
unix_update
upstart
upstart-dbus-bridge
upstart-event-bridge
upstart-file-bridge
upstart-local-bridge
upstart-socket-bridge
upstart-udev-bridge
ureadahead
wipefs
wpa_action
wpa_cli
wpa_supplicant
xtables-multi
zramctl
aa-exec
aa-status
accept
accessdb
acpid
addgnupghome
addgroup
add-shell
adduser
alsactl
alsa-info.sh
anacron
apparmor_status
applygnupgdefaults
aptd
arp
arpd
aspell-autobuildhash
atd
avahi-daemon
biosdecode
bluetoothd
chat
check-bios-nx
cherryd
chgpasswd
chpasswd
chroot
cpgr
cppw
cron
cupsaccept
cupsaddsmb
cups-browsed
cupsctl
cupsd
cupsdisable
cupsenable
cupsfilter
cups-genppdupdate
cupsreject
debootstrap
delgroup
deluser
dkms
dmidecode
dnsmasq
dpkg-divert
dpkg-preconfigure
dpkg-reconfigure
dpkg-statoverride
e2freefrag
e4defrag
fdformat
filefrag
gconf-schemas
genccode
gencmn
genl
gennorm2
gensprep
getweb
gnome-menus-blacklist
gparted
gpartedbin
groupadd
groupdel
groupmod
grpck
grpconv
grpunconv
grub-bios-setup
grub-install
grub-macbless
grub-mkconfig
grub-mkdevicemap
grub-probe
grub-reboot
grub-set-default
guest-account
iconvconfig
icupkg
install-menu
install-sgmlcatalog
invoke-rc.d
ip6tables-apply
iptables-apply
irqbalance
ispell-autobuildhash
iucode_tool
iucode-tool
kerneloops
kvm-ok
laptop-detect
ldattach
libvirtd
libvirt-migrate-qemu-disks
libvirt-migrate-qemu-machinetype
libvirt-migrate-xend-managed-domains
lightdm
lightdm-session
locale-gen
logrotate
lpadmin
lpc
lpinfo
lpmove
lubuntu-software-center-build-db
make-ssl-cert
mkinitramfs
mklost+found
ModemManager
mysqld
NetworkManager
newusers
nfnl_osf
nologin
ntpd
ntp-keygen
ntptime
ntp-wait
ownership
pam-auth-update
pam_getenv
pam_timestamp_check
paperconfig
pbuilder
pm-hibernate
pm-powersave
pm-suspend
pm-suspend-hybrid
popcon-largest-unused
popularity-contest
pppd
pppdump
pppoe-discovery
pppstats
pwck
pwconv
pwunconv
qemubuilder
qemu-ga
qemu-make-debian-root
rdmsr
readprofile
rebuild-security-providers
reject
remove-default-ispell
remove-default-wordlist
remove-shell
rfkill
rmt
rmt-tar
rsyslogd
rtcwake
rtkitctl
saned
select-default-ispell
select-default-wordlist
service
setvesablank
su-to-root
synaptic
sync-available
system-tools-backends
tarcat
tcpdump
toshsat1800-irdasetup
tunelp
tzconfig
ufw
unity-greeter
update-alternatives
update-binfmts
update-ca-certificates
update-catalog
update-codeaster-engines
update-default-aspell
update-default-ispell
update-default-wordlist
update-dictcommon-aspell
update-dictcommon-hunspell
update-fmtutil
update-fonts-alias
update-fonts-dir
update-fonts-scale
update-grub
update-grub2
update-grub-gfxpayload
update-gsfontmap
update-icon-caches
update-inetd
update-info-dir
update-initramfs
update-java-alternatives
update-language
update-language-dat
update-language-def
update-language-lua
update-locale
update-mime
update-passwd
update-pciids
update-rc.d
update-texmf
update-texmf-config
update-tl-stacked-conffile
update-updmap
update-usbids
update-xmlcatalog
upgrade-from-grub-legacy
usb_modeswitch
usb_modeswitch_dispatcher
useradd
userdel
usermod
uuidd
validlocale
vcstime
vigr
vipw
virtlockd
virtlogd
visudo
vpddecode
wrmsr
xfce4-pm-helper
xfpm-power-backlight-helper
zic

Uso de metacaracteres

Se usará <sec> para indicar una secuencia arbitraria, la cual puede ser compuesta de caracteres literales o metacaracteres.

Las expresiones regulares se dividen en un conjunto BRE (Basic Regular Expression) y ERE (Extended Regular Expression) acorde al soporte definido de los metacaracteres. El primero es soportado acorde al estandar POSIX y se ilustra en el siguiente cuadro.

Metacaracter Descripción
. Permite la sustitución por cualquier caracter
^<sec> Indica que la secuencia que precede se ubica al inicio.
<sec>$ Indica que la secuencia precedente se ubica al final.
[<sec>] Indica que los elementos definidos en los corchetes basta con la coincidencia de uno de ellos
[^<sec>] Indica que los elementos definidos en los corchetes porteriores a ^ deben estar ausentes
[<chr>-<chr>] Siendo los caracteres pertenecientes a un subconjunto de caracteres (clase), representa a todos los caracteres contenidos entre ellos

En el estandar POSIX se definen un conjunto de clases para simplificar los rangos cuando se usa todo el subconjunto, y es supremamente conveniente su uso para expresiones que requieren rangos donde se difiere del orden diccionario (principalmente por motivos de codificación acorde al soporte de algunas aplicaciones para las expresiones regulares).

Dado que corresponden a rangos, estos deben estar a su vez en medio de otros corchetes.


In [2]:
%%bash
echo ":: non-meta <sec> ::"
grep 'zip' test_regexp
echo ":: meta .<sec> ::"
grep '.zip' test_regexp
echo ":: meta ^<sec> ::"
grep '^zip' test_regexp
echo ":: meta <sec>$ ::"
grep 'zip$' test_regexp
echo ":: meta ^<sec>$ ::"
grep '^zip$' test_regexp
echo ":: meta [<sec>] ::"
grep '[bg]zip' test_regexp
echo ":: meta [^<sec>] ::"
grep '[^bg]zip' test_regexp
echo ":: meta [<chr>-<chr>] ::"
grep '^[A-Z][a-z]' test_regexp
echo ":: meta [[:<class>:]] ::"
grep '^[[:upper:]][[:lower:]]' test_regexp


:: non-meta <sec> ::
bunzip2
bzip2
bzip2recover
gunzip
gzip
funzip
gpg-zip
mzip
preunzip
prezip
prezip-bin
unzip
unzipsfx
zip
zipcloak
zipdetails
zipgrep
zipinfo
zipnote
zipsplit
:: meta .<sec> ::
bunzip2
bzip2
bzip2recover
gunzip
gzip
funzip
gpg-zip
mzip
preunzip
prezip
prezip-bin
unzip
unzipsfx
:: meta ^<sec> ::
zip
zipcloak
zipdetails
zipgrep
zipinfo
zipnote
zipsplit
:: meta <sec>$ ::
gunzip
gzip
funzip
gpg-zip
mzip
preunzip
prezip
unzip
zip
:: meta ^<sec>$ ::
zip
:: meta [<sec>] ::
bzip2
bzip2recover
gzip
:: meta [^<sec>] ::
bunzip2
gunzip
funzip
gpg-zip
mzip
preunzip
prezip
prezip-bin
unzip
unzipsfx
:: meta [<chr>-<chr>] ::
ElmerFront
ElmerGrid
ElmerMesh2D
ElmerParam
ElmerPost
ElmerSolver
ElmerSolver_mpi
GebhardtFactors
Mesh2D
QueryGLXExt
Rscript
ViewFactors
Xorg
ModemManager
NetworkManager
:: meta [[:<class>:]] ::
ElmerFront
ElmerGrid
ElmerMesh2D
ElmerParam
ElmerPost
ElmerSolver
ElmerSolver_mpi
GebhardtFactors
Mesh2D
QueryGLXExt
Rscript
ViewFactors
Xorg
ModemManager
NetworkManager

Para los metacaracteres ERE se tiene el siguiente comportamiento.

Metacaracter Descripción
sec|sec Alternación Coincidencia con alguno de los patrones
<sec>? Elemento precedente opcional (cero o una vez)
<sec>* Elemento precedente opcional (cero o multiples veces)
<sec>+ Elemento precedente con repetición opcional (una o multiples veces)
<sec>{n,m} Coincidencia del precedente mínimo $n$ veces y máximo $m$ veces. Si se usa uno de los dos con la presencia de la , aplica como solo mínimo o máximo según corresponda, y si es uno solo sin la , es las coincidencias exactas

Para multiples aplicaciones el soporte de ERE debe indicarse de forma explicita, así por ejemplo para la utilidad con la cual hemos ejemplificado, debe usarse grep -E, siendo el argumento -E la indicación del soporte extendido. Igualmente hay utilidades con el soporte incluido, en este caso la alternativa es egrep.


In [3]:
%%bash
echo ":: meta <sec>|<sec> ::"
grep -E '^2|.zip$' test_regexp
echo ":: meta <sec>? ::"
grep -E '^[a-z]?zip.' test_regexp
echo ":: meta <sec>* ::"
grep -E '^[a-z]*zip.' test_regexp
echo ":: meta <sec>+ ::"
grep -E '^[a-z]+zip.' test_regexp
echo ":: meta <sec>{n,m} ::"
grep -E '^[a-z]{1,3}zip.' test_regexp


:: meta <sec>|<sec> ::
gunzip
gzip
2to3
2to3-2.7
2to3-3.5
funzip
gpg-zip
mzip
preunzip
prezip
unzip
:: meta <sec>? ::
bzip2
bzip2recover
zipcloak
zipdetails
zipgrep
zipinfo
zipnote
zipsplit
:: meta <sec>* ::
bunzip2
bzip2
bzip2recover
prezip-bin
unzipsfx
zipcloak
zipdetails
zipgrep
zipinfo
zipnote
zipsplit
:: meta <sec>+ ::
bunzip2
bzip2
bzip2recover
prezip-bin
unzipsfx
:: meta <sec>{n,m} ::

Otras utilidades para habilitar sus expresiones regulares requieren indicación explicita incluso para el soporte POSIX. Ejemplo locate --regex '<regex>'. En less y vim una vez visualizamos el archivo, habilitamos la búsqueda de expresiones regulares con /.

Manipulación de texto

Concatenación de archivos

Para la concatenación de archivos en linux podemos usar la utilidad cat. Permite la unión de archivos y redirige su unión a la salida estandar.


In [4]:
%%bash
printf "hola\nesto\nes\nuna\nprueba.\n" > prueba1
a=1
echo $a > prueba2
while [ $a -lt 5 ]; do
    let a=a+1
    echo $a >> prueba2
done
cat prueba1 prueba2 > prueba3
more prueba3


::::::::::::::
prueba3
::::::::::::::
hola
esto
es
una
prueba.
1
2
3
4
5

Ordenamiento

Es posible ordenar lineas de archivos con los valores definidos en ASCII con la instrucción sort.


In [5]:
!sort prueba3


1
2
3
4
5
es
esto
hola
prueba.
una

Unicidad

Es posible remover los elementos repetidos de un conjunto con utilidades de linux. Para esto, primero debe ordenarse la lista de elemento (sort) y aplicar uniq.


In [6]:
%%bash
cat prueba3 prueba1 prueba2 prueba3 > repetido
cat repetido
echo ":: uniq sin sort ::"
uniq repetido
echo ":: uniq con sort ::"
sort repetido | uniq


hola
esto
es
una
prueba.
1
2
3
4
5
hola
esto
es
una
prueba.
1
2
3
4
5
hola
esto
es
una
prueba.
1
2
3
4
5
:: uniq sin sort ::
hola
esto
es
una
prueba.
1
2
3
4
5
hola
esto
es
una
prueba.
1
2
3
4
5
hola
esto
es
una
prueba.
1
2
3
4
5
:: uniq con sort ::
1
2
3
4
5
es
esto
hola
prueba.
una

Cortar

Para extraer secciones especificas de lineas de los archivos usamos la instrucción cut.


In [7]:
%%bash
ls -oh
ls -oh | grep -Ev '[[:alpha:]]+ [[:alnum:]]+\.ipynb|total' | grep -Ev '[a-z]{3}  ' > cortar
echo ":: archivo cortar seleccionando lineas ::"
cat cortar
echo ":: Horas enteras de los archivos ::"
cut -d " " -f 7 cortar | cut -c 1-2 > horas
cut -d " " -f 7 cortar | cut -c 4-5 > minutos
echo ":: Horas ::"
cat horas
echo ":: Minutos ::"
cat minutos


total 900K
-rw-rw-r-- 1 cosmoscalibur  31K sep  1 07:52 algebra_computacional.ipynb
-rw-rw-r-- 1 cosmoscalibur  569 sep 21 19:08 cortar
-rw-rw-r-- 1 cosmoscalibur 8,0K ago 31 00:39 datos_abiertos.md
-rw-rw-r-- 1 cosmoscalibur  165 sep 21 19:24 diferencia
-rw-rw-r-- 1 cosmoscalibur  27K ago 22 19:52 Git.ipynb
-rw-rw-r-- 1 cosmoscalibur 1,6K sep 21 05:09 historial_talleres.md
-rw-rw-r-- 1 cosmoscalibur 3,8K ago 22 21:02 hoja_de_ruta.md
-rw-rw-r-- 1 cosmoscalibur   27 sep 21 19:08 horas
-rw-rw-r-- 1 cosmoscalibur  24K ago 30 21:05 Jupyter Notebook Basico.ipynb
-rw-rw-r-- 1 cosmoscalibur 5,6K ago  7 19:27 Jupyter Notebook Intermedio.ipynb
-rw-rw-r-- 1 cosmoscalibur  13K ago  7 18:35 jupyter.png
-rw-rw-r-- 1 cosmoscalibur 182K ago 22 20:09 LaTeX_basico.pdf
-rw-rw-r-- 1 cosmoscalibur  18K ago 22 20:09 LaTeX_basico.tex
-rw-rw-r-- 1 cosmoscalibur 1,1K ago  9 11:19 LICENSE
-rw-rw-r-- 1 cosmoscalibur  17K sep 21 18:14 Linux Bash.ipynb
-rw-rw-r-- 1 cosmoscalibur  36K ago 22 19:44 Linux Basico.ipynb
-rw-rw-r-- 1 cosmoscalibur   27 sep 21 19:08 minutos
-rw-rw-r-- 1 cosmoscalibur    9 sep 21 19:24 ordenado1
-rw-rw-r-- 1 cosmoscalibur    9 sep 21 19:24 ordenado2
-rw-rw-r-- 1 cosmoscalibur 5,7K sep 14 08:03 parcial_20162.ipynb
-rw-rw-r-- 1 cosmoscalibur  12K ago 15 12:12 presentacion_herramientas.md
-rw-rw-r-- 1 cosmoscalibur 137K ago 15 12:12 presentacion_herramientas.pdf
-rw-rw-r-- 1 cosmoscalibur 103K sep 21 19:39 procesamiento_de_texto.ipynb
-rw-rw-r-- 1 cosmoscalibur   25 sep 21 19:40 prueba1
-rw-rw-r-- 1 cosmoscalibur   10 sep 21 19:40 prueba2
-rw-rw-r-- 1 cosmoscalibur   35 sep 21 19:40 prueba3
-rw-rw-r-- 1 cosmoscalibur 2,3K sep 20 18:33 README.md
-rw-rw-r-- 1 cosmoscalibur  105 sep 21 19:40 repetido
-rw-rw-r-- 1 cosmoscalibur 7,1K ago 21 15:09 Taller_1.ipynb
-rw-rw-r-- 1 cosmoscalibur 6,6K sep 17 11:46 Taller_2b.ipynb
-rw-rw-r-- 1 cosmoscalibur  17K sep 17 11:40 Taller 2.ipynb
-rw-rw-r-- 1 cosmoscalibur  38K sep 21 19:40 test_regexp
:: archivo cortar seleccionando lineas ::
-rw-rw-r-- 1 cosmoscalibur 8,0K ago 31 00:39 datos_abiertos.md
-rw-rw-r-- 1 cosmoscalibur 1,6K sep 21 05:09 historial_talleres.md
-rw-rw-r-- 1 cosmoscalibur 3,8K ago 22 21:02 hoja_de_ruta.md
-rw-rw-r-- 1 cosmoscalibur 182K ago 22 20:09 LaTeX_basico.pdf
-rw-rw-r-- 1 cosmoscalibur 5,7K sep 14 08:03 parcial_20162.ipynb
-rw-rw-r-- 1 cosmoscalibur 137K ago 15 12:12 presentacion_herramientas.pdf
-rw-rw-r-- 1 cosmoscalibur 103K sep 21 19:39 procesamiento_de_texto.ipynb
-rw-rw-r-- 1 cosmoscalibur 2,3K sep 20 18:33 README.md
-rw-rw-r-- 1 cosmoscalibur 7,1K ago 21 15:09 Taller_1.ipynb
-rw-rw-r-- 1 cosmoscalibur 6,6K sep 17 11:46 Taller_2b.ipynb
:: Horas enteras de los archivos ::
:: Horas ::
00
05
21
20
08
12
19
18
15
11
:: Minutos ::
39
09
02
09
03
12
39
33
09
46

Pegado

Para pegar columnas usamos la instrucción paste.


In [8]:
%%bash
paste horas minutos


00	39
05	09
21	02
20	09
08	03
12	12
19	39
18	33
15	09
11	46

Comparación de archivos

Es posible comparar archivos con las instrucciones comm y diff. La primera requiere que los archivos sean ordenados. Usando la diferencia de los archivos es posible generar la actualización del archivo base con patch.


In [9]:
%%bash
printf "a\nb\nf\nh" > ordenado1
printf "a\nc\nd\ng\nh" > ordenado2
echo ":: comm ::"
comm ordenado1 ordenado2
echo ":: diff ::"
diff ordenado1 ordenado2
echo ":: patch ::"
diff -Naur ordenado1 ordenado2 > diferencia
cat diferencia
patch < diferencia
cat ordenado1


:: comm ::
		a
b
	c
	d
f
	g
		h
:: diff ::
2,3c2,4
< b
< f
---
> c
> d
> g
:: patch ::
--- ordenado1	2016-09-21 19:40:17.600420389 -0500
+++ ordenado2	2016-09-21 19:40:17.600420389 -0500
@@ -1,4 +1,5 @@
 a
-b
-f
+c
+d
+g
 h
\ No newline at end of file
patching file ordenado1
a
c
d
g
h

Edición

Es posible hacer "traducciones" con la consola con la instrucción tr. Esto corresponde a substituciones basadas en expresiones regulares.


In [10]:
%%bash
echo "EsCrItUrA TeRrIbLe" | tr [:upper:] [:lower:]


escritura terrible

Una forma más avanzada es posible con sed.


In [11]:
%%bash
echo "escritura terrible" | sed 'y/esib/3516/'
echo "escritura terrible" | sed 's/terrible/hermosa/'


35cr1tura t3rr16l3
escritura hermosa

Adicional

Se recomienda la exploración por parte del estudiante de las herramientas de Pandoc y NLTK, como dos ejemplos de bastante interes en el procesamiento de texto y que pueden ser de gran utilidad en su proceso.

A nivel de utilidades linux complementarias, se sugiere la exploración de awk y sed.

Las expresiones regulares son una herramienta poderosa, sin embargo su uso no es recomendable para toda ocasión. Otras estrategias para la manipulación de texto recurren al recorrido de los caracteres para establecer las estructuras mediante la separación y clasificación de elementos mientras son concatenados. Esta resulta ser una estrategia básica bastante útil para muchos casos.

Actividad sugerida

  1. Identifique por medio de procesamiento de texto los enlaces de las imagenes ubicadas en este documento, y de forma automatica descarguelas y reemplace los enlaces originales por las versiones locales. Ademas, agreguelos como bibliografía conservando el estilo markdown con fecha de consulta igual a la fecha del commit en los cuales fueron agregados en la sección de bibliografía (se debe generar una copia del notebook para este fin de forma automatica).
  2. La extracción de datos de internet puede tener herramientas especificas para la búsqueda en la estructura especifica de una web, pero una forma básica puede ser usar la descarga tradicional con instrucciones como wget de un sitio estatico. Haga una celda que obtenga una página html con tablas, y extraiga la información de la tabla web a una lista de listas de python de forma automatica, la cual sea convertida posteriormente a una tabla markdown que se visualice adecuadamente.
  3. Extraiga automaticamente todos los enlaces de este notebook, y genere la instrucción equivalente de enlace para LaTeX (no URL sino enlace). Presente las equivalencias como salida de texto convencional.
  4. Use filtros pandoc con la extensión para python para realizar los últimos dos puntos.

Bibliografía

  1. Text processing. Wikipedia. Consultado el 18 de septiembre de 2016.
  2. Advanced Bash-Scripting Guide: External Filters, Programs and Commands. Consultado el 18 de septiembre de 2016.
  3. The Python Standard Library: Text Processing Services. Consultado el 18 de septiembre de 2016.
  4. The Linux Command Line (Capitulos 19 a 22). William Shotts. 2012.
  5. Awk - A tutorial and introduction. Consultado el 13 de octubre.