transpose: Wrapped with main function.
This commit is contained in:
parent
c9488299dc
commit
3e326d2ce5
6
G/G
6
G/G
|
@ -71,7 +71,11 @@ while(@ARGV) {
|
|||
}
|
||||
}
|
||||
|
||||
exec join"|", map { "grep ".join(" ", shell_quote(@$_)) } @cmd;
|
||||
if(@cmd) {
|
||||
exec join"|", map { "grep ".join(" ", shell_quote(@$_)) } @cmd;
|
||||
} else {
|
||||
exec 'cat';
|
||||
}
|
||||
|
||||
sub shell_quote {
|
||||
# Input:
|
||||
|
|
14
transpose/test.sh
Normal file → Executable file
14
transpose/test.sh
Normal file → Executable file
|
@ -37,21 +37,21 @@ dotest() {
|
|||
}
|
||||
|
||||
. `which env_parallel.bash`
|
||||
env_parallel -r <<EOF
|
||||
env_parallel -r <<'EOF'
|
||||
dotest /tmp/table-3,1000000.csv
|
||||
dotest /tmp/table-3,10000000.csv
|
||||
dotest /tmp/table-1000,100000.csv
|
||||
# Test --block 1 (problem with GNU Parallel < 20180422)
|
||||
dotest /tmp/table-3,1000.csv -b 1
|
||||
dotest /tmp/table-3\|1000.csv
|
||||
dotest /tmp/table-3,1000.csv
|
||||
dotest /tmp/table-3,10000.csv
|
||||
dotest /tmp/table-3,100000.csv
|
||||
dotest /tmp/table-3,1000000.csv
|
||||
dotest /tmp/table-3,10000000.csv
|
||||
|
||||
dotest '/tmp/table-10\\t20.csv'
|
||||
dotest '/tmp/table-10\t20.csv'
|
||||
dotest /tmp/table-10';'20.csv
|
||||
dotest '/tmp/table-100\\t200.csv'
|
||||
dotest '/tmp/table-100\t200.csv'
|
||||
dotest /tmp/table-1,100.csv
|
||||
dotest /tmp/table-10,1000.csv
|
||||
dotest /tmp/table-100,10000.csv
|
||||
dotest /tmp/table-1000,100000.csv
|
||||
EOF
|
||||
|
||||
|
|
|
@ -262,10 +262,21 @@ file_to_paste_files() {
|
|||
|
||||
super_paste() {
|
||||
# Like 'paste' up to 1000000 files
|
||||
# More than 250000 files requires extra filehandles for GNU Parallel
|
||||
# The files are read from stdin
|
||||
local sep
|
||||
local paste_files
|
||||
local fifo
|
||||
|
||||
other_commands() {
|
||||
printf "\rSIGINT caught "
|
||||
ls -l $paste_files
|
||||
cat $paste_files | parallel "eval rm -f {} $fifo{0#}"
|
||||
rm $paste_files
|
||||
}
|
||||
|
||||
trap 'other_commands' SIGINT
|
||||
|
||||
sep="$1"
|
||||
paste_files=`tempfile`
|
||||
# basename
|
||||
|
@ -305,40 +316,44 @@ usage() {
|
|||
echo "Usage: $0 [-d delimiter] [-b blocksize]" 1>&2; exit 1;
|
||||
}
|
||||
|
||||
block_size=10M
|
||||
while getopts ":b:d:" o; do
|
||||
case "${o}" in
|
||||
d)
|
||||
d="$(printf "${OPTARG}")"
|
||||
if [ "'" = "${d}" ] ; then
|
||||
echo "Delimiter cannot be '"
|
||||
main() {
|
||||
block_size=10M
|
||||
while getopts ":b:d:" o; do
|
||||
case "${o}" in
|
||||
d)
|
||||
d="$(printf "${OPTARG}")"
|
||||
if [ "'" = "${d}" ] ; then
|
||||
echo "Delimiter cannot be '"
|
||||
usage
|
||||
exit
|
||||
fi
|
||||
;;
|
||||
b)
|
||||
block_size="${OPTARG}"
|
||||
;;
|
||||
*)
|
||||
usage
|
||||
exit
|
||||
fi
|
||||
;;
|
||||
b)
|
||||
block_size="${OPTARG}"
|
||||
;;
|
||||
*)
|
||||
usage
|
||||
;;
|
||||
esac
|
||||
done
|
||||
shift $((OPTIND-1))
|
||||
;;
|
||||
esac
|
||||
done
|
||||
shift $((OPTIND-1))
|
||||
|
||||
if [ -z "${d}" ] ; then
|
||||
d="$(printf "\t")"
|
||||
fi
|
||||
if [ -z "${d}" ] ; then
|
||||
d="$(printf "\t")"
|
||||
fi
|
||||
|
||||
# Sep cannot be '
|
||||
file="$@"
|
||||
first_lines=`tempfile`
|
||||
if [ -z "$file" ]; then
|
||||
sep="$(stdin_detect_sep $first_lines)"
|
||||
(cat $first_lines; rm $first_lines; cat) |
|
||||
stdin_to_paste_files $block_size "$sep" | super_paste "$sep"
|
||||
else
|
||||
sep="$(stdin_detect_sep < "$file" $first_lines)"
|
||||
rm $first_lines
|
||||
file_to_paste_files $block_size "$sep" "$file" | super_paste "$sep"
|
||||
fi
|
||||
file="$@"
|
||||
first_lines=`tempfile`
|
||||
if [ -z "$file" ]; then
|
||||
sep="$(stdin_detect_sep $first_lines)"
|
||||
(cat $first_lines; rm $first_lines; cat) |
|
||||
stdin_to_paste_files $block_size "$sep" | super_paste "$sep"
|
||||
else
|
||||
sep="$(stdin_detect_sep < "$file" $first_lines)"
|
||||
rm $first_lines
|
||||
file_to_paste_files $block_size "$sep" "$file" | super_paste "$sep"
|
||||
fi
|
||||
}
|
||||
|
||||
# Make sure the whole file is read before starting
|
||||
main "$@"
|
||||
|
|
|
@ -7,7 +7,8 @@ INSTALLATION (create directories if they donot exist):
|
|||
* Linux (current user): ~/.local/share/vlc/lua/extensions/
|
||||
* Mac OS X (all users): /Applications/VLC.app/Contents/MacOS/share/lua/extensions/
|
||||
- Restart VLC.
|
||||
- The extension can then be found in the menu View > Wastebasket.
|
||||
- The extension can then be found in the menu:
|
||||
View > Move current playing file into wastebasket
|
||||
]]--
|
||||
|
||||
--[[ Extension description ]]
|
||||
|
|
5
ytv/ytv
5
ytv/ytv
|
@ -69,13 +69,14 @@ $SIG{'CHLD'} = sub { exit; };
|
|||
do {
|
||||
# Sleep until there are matching files
|
||||
sleep(1);
|
||||
@new = grep { not $before{$_} or $before{$_} > -M $_ } <*>;
|
||||
@new = (grep { -s $_ > 1000000 }
|
||||
grep { not $before{$_} or $before{$_} > -M $_ } <*>);
|
||||
} until @new;
|
||||
|
||||
while(@new) {
|
||||
# Mark as seen
|
||||
map { $before{$_} = -M $_ } @new;
|
||||
# Run VLC on the matching files
|
||||
system("vlc",@new);
|
||||
system("vlc", map { $a=$_; s/.part//; $a,$_ } @new);
|
||||
@new = grep { not $before{$_} or $before{$_} > -M $_ } <*>;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue