Sponsored Content
Top Forums Shell Programming and Scripting Renumbering files bash script Post 302920343 by Aia on Thursday 9th of October 2014 01:33:23 AM
Old 10-09-2014
I am hoping you are going to be careful and create a backup before doing any test on it, otherwise you most likely are going to overwrite your files.

Look at this:

Code:
Alk-0001.txt > Alk-0002.txt
Alk-0002.txt > Alk-0004.txt
Alk-0003.txt > Alk-0006.txt

There's a file Alk-0002.txt already, right? What do you think it will happen if you
Alk-0001.txt > Alk-0002.txt
And then you
Alk-0002.txt > Alk-0004.txt ?
You will be practically overwriting files right and left.

Any solution presented must have that in consideration. I think it would have to be a two pass renaming in order to be safe.

Let me show you how to test safely

Code:
mkdir working_dir && cd working_dir
touch Alk-{0001..0067}.txt

Now, you have a dummy army of files to test.
cp the script to this file and execute it only when you are cd into.

Now a possible solution for the first request

Code:
#!/bin/ksh

change_serial() {

    for f in Alk-*.txt; do
        fnameplus=${f%.*}
        ext="${f##*.}"
        serial="${fnameplus##*-}"

        case "$1" in
            1)
                trim_serial=$(printf "%010d" "$((serial*2))");
            ;;
            2)
                trim_serial="${serial:6}"
            ;;
            *)
                echo "bailing out";
                exit 1;
            ;;
        esac

        mv "$f" "Alk-${trim_serial}.${ext}"
    done
}

change_serial 1
change_serial 2


Last edited by Aia; 10-09-2014 at 02:40 AM.. Reason: ksh
 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

renumbering user id

Other than deleting and recreating a user can a users id number be changed? I need to have my user id the same on more than one system. (1 Reply)
Discussion started by: thumper
1 Replies

2. Shell Programming and Scripting

Renumbering files scripting help!

I am new to the world of UNIX scripting - and would like to make the following script: I have 100 files numbered 1-100. However - i would like to continue the file list - so that I add another 100 files following on, so that file 101 = 99; file 102 = 98 ; 103 = 97 and so on.... (basically ...... (6 Replies)
Discussion started by: AJC1985
6 Replies

3. Shell Programming and Scripting

Bash script - integrate two files

I wrote script in bash which generates this report "users.csv": I wrote script in bash which generates this report "groups.csv" I want to integate two reports: "users.csv" and "groups.csv". I want like so that "result.csv": Thx (5 Replies)
Discussion started by: patrykxes
5 Replies

4. Shell Programming and Scripting

Again integrate files - bash script

I wrote script in bash which generates this report "users.csv": I wrote script in bash which generates this report "groups.csv" I want to integate two reports: "users.csv" and "groups.csv". I want like so that "result.csv": (2 Replies)
Discussion started by: patrykxes
2 Replies

5. Shell Programming and Scripting

column renumbering

Hi, I am a beginner in awk scripting! I need your help; I want to replace the fifth column number (which is 15 here) here in this file for example : ATOM 142 N PRO A 15 ATOM 143 CD PRO A 15 ATOM 144 HD1 PRO A 15 ATOM ... (5 Replies)
Discussion started by: adak
5 Replies

6. UNIX for Dummies Questions & Answers

renaming (renumbering) fasta files

I have a fasta file that looks like this: >Noname ACCAAAATAATTCATGATATACTCAGATCCATCTGAGGGTTTCACCACTTGTAGAGCTAT CAGAAGAATGTCAATCAACTGTCCGAGAAAAAAGAATCCCAGG >Noname ACTATAAACCCTATTTCTCTTTCTAAAAATTGAAATATTAAAGAAACTAGCACTAGCCTG ACCTTTAGCCAGACTTCTCACTCTTAATGCTGCGGACAAACAGA ... I want to... (2 Replies)
Discussion started by: Oyster
2 Replies

7. Shell Programming and Scripting

renumbering within a file

Hi All, I have 100 files named - rep-0.txt, rep-2.txt...rep-99.txt. They each contain information in the following format: abc 1 qwe asd 2 zxc poi 3 lkj pdh 4 ldf hgf 5 tyu i would like to re-number , so that all the new files (rep0.dat, rep1,dat....) have... (1 Reply)
Discussion started by: chen.xiao.po
1 Replies

8. Shell Programming and Scripting

Bash script deleting my files, and editing files in subdirectories question

#!/bin/bash # name=$1 type=$2 number=1 for file in ./** do if then filenumber=00$number elif then filenumber=0$number fi tempname="$name""$filenumber"."$type" if (4 Replies)
Discussion started by: TheGreatGizmo
4 Replies

9. Shell Programming and Scripting

Bash script for check files

I created this script for check whether specific files exist or not in the given location. but when I run this its always showing Failed - Flag_lms_device_info_20160628.txt do not exist Failed - Flag_lms_weekly_usage_info_20160628.txt do not exist but both files are existing. appreciate help... (2 Replies)
Discussion started by: lfreez
2 Replies
trcs(1) 							   User Manuals 							   trcs(1)

NAME
trcs - convert text files from one codeset to other SYNOPSIS
trcs -C | -l | -h trcs [-s] [-f input-codeset ] [-t output-codeset ] [ file ]... DESCRIPTION
trcs is a program for translation of text files from one codeset to other. When exact translation is impossible it tries to make approxi- mations. For example pseudographic characters are approximated by ASCII characters in codesets that have no pseudographic characters and characters with diacritical marks are approximated by existing characters. If the option -s or --gen-script is given trcs will generate simple script that invokes tr(1) This is useful if you want to include this in your script or for faster conversion of many files. If none of -C, -s, -l, -h and their equivalents is given each file will be read assuming it is coded with codeset input-codeset On standard output it will be recoded so to use codeset output-codeset If there is no file given trcs will act as filter. Both input-codeset and out- put-codeset are case insensitive and default to `cp1251'. OPTIONS
-C, --copyright Display copying conditions and warranty information. -s, --gen-script Generates conversion script for given input and output encodings instead to convert text files. -l, --list List all known codesets with their aliases. -h, --help Display this help and exit. -f input-codeset, --from[=]input-codeset Codeset of the source. -f output-codeset, --to[=]output-codeset Codeset of the output. EXAMPLES
trcs -fcyrillic -t koi8-r letter.txt Convert letter.txt from ISO-8859-5 (cyrillic) to KOI8-R and output the result on standard output. trcs --from cp437 --to=mik --gen-script >ibm2mik Generates script ibm2mik for converting from CP437 to MIK. sh ibm2mik screen.txt Convert screen.txt from CP437 to MIK. Output the result on standard output. Without parameters ibm2mik acts as filter. AUTHOR
Anton Zinoviev <anton@lml.bas.bg>, <zinoviev@fmi.uni-sofia.bg> SEE ALSO
tr(1) Linux JUN 2000 trcs(1)
All times are GMT -4. The time now is 07:36 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy