perl -F: -pale '$"=":"; $_ = "@F[1,5..$#F]"' input-file.txt
awk -F: '
{
a = $2
for ( i = 6; i <= NF; ++i )
$(i-5) = $(i)
NF -= 5
print a, $0
}
' OFS=":" input-file.txt
sed -e '
s/^/:/;s/:/\n/6
h;s/.*\n//
x;s/\n.*//
s/$/:/
s/^://;s/:/\n/2
s/^/:/;s/:/\n/2
s/.*\n\(.*\)\n.*/\1/
G;s/\n/:/
' input-file.txt
lcat() {
ls -alh "$@"
cat "$@"
}
или с less
вместо cat
. Или ( ls -alh "$@"; cat "$@") | less
, чтобы увидеть разрешения и все в том же просматриваемом списке.
Мне нужно что-то вроде этого:
lcd() {
if [ -d "$1" ]; do
ls -lvF "$1"
else
less "$1"
fi
}
т. е. либо получить список каталогов, либо просмотреть файл. Вероятно, есть какой-то less
интерфейс, который уже работает ls
с каталогами, но тем не менее.
На прошлой неделе я копался в файлах, к которым было применено несколько кодировок, и придумал это:
#.. Show characteristics of a file.
Show () { #:: (filename)
printf '\n.. About %s.. at %(%T)T\n' "${1}"
file "${1}"
wc "${1}"
[[ $( file "${1}" ) =~ ASCII ]] && {
cat -vet "${1}" | nl -ba | head -n 4
cat -vet "${1}" | nl -ba | tail -n 4
}
[[ $( file "${1}" ) =~ ASCII ]] || {
od -A d -t x4d4o1ac "${1}" > "${1}.od"
ls -l "${1}.od"
}
}
Это может быть улучшено путем принятия нескольких имен файлов и, возможно, опций -h N
и -t N
для установки размера простого листинга.