aboutsummaryrefslogtreecommitdiff
path: root/virename
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2022-03-06 12:41:06 +0100
committerSebastiano Tronto <sebastiano@tronto.net>2022-03-06 12:41:06 +0100
commit926f38a941da5f917971e609f0c03d9b69c92535 (patch)
tree4fde2670e97a17f0e56053dc3bfe71421c9b1dbb /virename
parentca5cf90979678c2c04ac78c4bfbc7ff5ef444f82 (diff)
downloadscripts-926f38a941da5f917971e609f0c03d9b69c92535.tar.gz
scripts-926f38a941da5f917971e609f0c03d9b69c92535.zip
Added virename
Diffstat (limited to 'virename')
-rwxr-xr-xvirename25
1 files changed, 25 insertions, 0 deletions
diff --git a/virename b/virename
new file mode 100755
index 0000000..e0d23bd
--- /dev/null
+++ b/virename
@@ -0,0 +1,25 @@
1#!/bin/sh
2
3# Rename all files in the current directory with a visual editor.
4# Similar to sel add all && sel mv, but it actually works.
5
6file=$(mktemp)
7file2=$(mktemp)
8editor=${EDITOR:-vi}
9
10ls | tee "$file" > "$file2"
11$editor "$file2"
12
13if [ "$(wc -l $file | awk '{print $1}')" != \
14 "$(wc -l $file2 | awk '{print $1}')" ]; then
15 echo "Error reading new file names"
16else
17 paste "$file" "$file2" | while read f; do
18 fold=$(echo "$f" | sed 's/\t.*//')
19 fnew=$(echo "$f" | sed 's/.*\t//')
20 if [ "$fold" != "$fnew" ]; then
21 mv "$fold" "$fnew" \
22 || echo "Error renaming $fold to $fnew"
23 fi
24 done
25fi

Generated with cgit - Back to sebastiano.tronto.net