From 926f38a941da5f917971e609f0c03d9b69c92535 Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Sun, 6 Mar 2022 12:41:06 +0100 Subject: Added virename --- virename | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100755 virename (limited to 'virename') diff --git a/virename b/virename new file mode 100755 index 0000000..e0d23bd --- /dev/null +++ b/virename @@ -0,0 +1,25 @@ +#!/bin/sh + +# Rename all files in the current directory with a visual editor. +# Similar to sel add all && sel mv, but it actually works. + +file=$(mktemp) +file2=$(mktemp) +editor=${EDITOR:-vi} + +ls | tee "$file" > "$file2" +$editor "$file2" + +if [ "$(wc -l $file | awk '{print $1}')" != \ + "$(wc -l $file2 | awk '{print $1}')" ]; then + echo "Error reading new file names" +else + paste "$file" "$file2" | while read f; do + fold=$(echo "$f" | sed 's/\t.*//') + fnew=$(echo "$f" | sed 's/.*\t//') + if [ "$fold" != "$fnew" ]; then + mv "$fold" "$fnew" \ + || echo "Error renaming $fold to $fnew" + fi + done +fi -- cgit v1.3