SELECTION=${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.selection
# Linux
-cat "$SELECTION" | xargs -0 | xsel -bi
+xargs -0 < "$SELECTION" | xsel -bi
# macOS
-# cat "$SELECTION" | xargs -0 | pbcopy
+# xargs -0 < "$SELECTION" | pbcopy
# Termux
-# cat "$SELECTION" | xargs -0 | termux-clipboard-set
+# xargs -0 < "$SELECTION" | termux-clipboard-set
# Cygwin
-# cat "$SELECTION" | xargs -0 | clip
+# xargs -0 < "$SELECTION" | clip
# Wayland
-# cat "$SELECTION" | xargs -0 | wl-copy
+# xargs -0 < "$SELECTION" | wl-copy
if [ "$shellname" = "bash" ]; then
hist_file="$HOME/.bash_history"
- entry="$(cat "$hist_file" | fzy)"
+ entry="$(fzy < "$hist_file")"
elif [ "$shellname" = "fish" ]; then
hist_file="$HOME/.config/fish/fish_history"
- entry="$(cat "$hist_file" | grep "\- cmd: " | cut -c 8- | fzy)"
+ entry="$(grep "\- cmd: " "$hist_file" | cut -c 8- | fzy)"
fi
if ! [ -z "$entry" ]; then
echo "$entry" >> $tmpfile
$EDITOR $tmpfile
- cmd="$(cat $tmpfile)"
-
- if ! [ -z "$cmd" ]; then
- $SHELL -c "$cmd"
+ if [ -s $tmpfile ]; then
+ $SHELL -c "$(cat $tmpfile)"
fi
rm $tmpfile
else
# If xargs supports the -o option, use it to get rid of:
# Vim: Warning: Input is not from a terminal
- # cat $selection | xargs -0 -o vimdiff
+ # xargs -0 -o vimdiff < $selection
- cat $selection | xargs -0 vimdiff +0
+ xargs -0 vimdiff +0 < $selection
fi
else
echo "needs at least 2 files or directories selected for comparison"
nnn -p /tmp/picked
if [ -f /tmp/picked ]; then
- cat /tmp/picked | tr '\0' '\n'
+ tr '\0' '\n' < /tmp/picked
rm /tmp/picked
fi
# Convert using pdftotext
pdftotext -nopgbrk -layout "$1" - | sed 's/\xe2\x80\x8b//g' > "$tmpf".txt
- pico2wave -w "$tmpf".wav -l en-GB "$(cat "$tmpf".txt | tr '\n' ' ')"
+ pico2wave -w "$tmpf".wav -l en-GB "$(tr '\n' ' ' < "$tmpf".txt)"
rm "$tmpf".txt
else
- pico2wave -w "$tmpf".wav -l en-GB "$(cat "$1" | tr '\n' ' ')"
+ pico2wave -w "$tmpf".wav -l en-GB "$(tr '\n' ' ' < "$1")"
fi
# to jump around and note the time
if (!sb.st_size)
return FALSE;
- snprintf(g_buf, CMD_LEN_MAX, "cat %s | tr \'\\0\' \'\\n\'", g_selpath);
+ snprintf(g_buf, CMD_LEN_MAX, "tr \'\\0\' \'\\n\' < %s", g_selpath);
spawn(utils[SH_EXEC], g_buf, NULL, NULL, F_CLI | F_CONFIRM);
return TRUE;
/* selsafe() returned TRUE for this to be called */
if (!selbufpos) {
- snprintf(buf, sizeof(buf), "cat %s | tr '\\0' '\\n' > %s", g_selpath, g_tmpfpath);
+ snprintf(buf, sizeof(buf), "tr '\\0' '\\n' < %s > %s", g_selpath, g_tmpfpath);
spawn(utils[SH_EXEC], buf, NULL, NULL, F_CLI);
count = lines_in_file(fd, buf, sizeof(buf));