Skip to content

Instantly share code, notes, and snippets.

@fny
Created August 11, 2021 02:06
Show Gist options
  • Save fny/a13e5e75e083aaa427454fef85916220 to your computer and use it in GitHub Desktop.
Save fny/a13e5e75e083aaa427454fef85916220 to your computer and use it in GitHub Desktop.
bash-snippets.sh
function concat_with_header() {
# Quoted suffix to pattern match for concatenation (e.g. '*.csv')
local suffix="${1}"
# Name of the output file
local output="${2:-combined.out}"
# Number of lines to use for the header
local header_length="${3:-1}"
# Grab the header from the first file
local header=`echo -e "$(ls -b *$suffix | head -n$header_length)"`
head -1 $header_file > $output; tail -n +"`expr $header_length + 1`" -q *$suffix >> $output
}
# Spin up an HTTP server in Python.
# - port: the port to start the server on
function pyserver() {
local port="${1:-8000}";
sleep 1 && open "http://localhost:${port}/" &
# Set the default Content-Type to `text/plain` instead of `application/octet-stream`
# And serve everything as UTF-8 (although not technically correct, this doesn’t break anything for binary files)
python -c $'import SimpleHTTPServer;\nmap = SimpleHTTPServer.SimpleHTTPRequestHandler.extensions_map;\nmap[""] = "text/plain";\nfor key, value in map.items():\n\tmap[key] = value + ";charset=UTF-8";\nSimpleHTTPServer.test();' "$port";
}
#
# Make `ls` pretty.
#
# Detect which `ls` flavor is in use
if ls --color > /dev/null 2>&1; then # GNU `ls`
colorflag="--color"
export LS_COLORS='no=00:fi=00:di=01;31:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:*.wav=01;35:'
else # macOS `ls`
colorflag="-G"
export LSCOLORS='BxBxhxDxfxhxhxhxhxcxcx'
fi
alias ls="command ls ${colorflag}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment