How to do things
AI Noob vs. Pro

List biggest files
List newest files
Show subdir sizes
Search in files
Replace word in files
List dir differences
Send files in LAN

Free Open Source:

Swiss File Knife

a command line
multi function tool.

remove tabs
list dir sizes
find text
filter lines
find in path
collect text
instant ftp or
http server
file transfer
send text
patch text
patch binary
run own cmd
convert crlf
dup file find
md5 lists
fromto clip
hexdump
split files
list latest
compare dirs
save typing
trace http
echo colors
head & tail
dep. listing
find classes
speed shell
zip search
zip dir list

Depeche View
Source Research
First Steps

windows GUI
automation

command line
file encryption

free external tools,
zero install effort,
usb stick compliant:

zip and unzip
diff and merge
reformat xml
reformat source

cpp sources

log tracing
mem tracing
hexdump
using printf

articles

embedded
stat. c array
stat. java array
var. c array
var. java array
view all text
as you type
surf over text
find by click
quick copy
multi view
find nearby
fullscreen
bookmarks
find by path
expressions
location jump
skip accents
clip match
filter lines
edit text
highlight
load filter
hotkey list
receive text
send in C++
send in Java
smooth scroll
touch scroll
fly wxWidgets
fly over Qt
search Java

Supersonic Text File Search - Free Download

Rename many files quickly on the command line through simple expressions with the free Swiss File Knife for Windows, Mac OS X and Linux.
  • Download the free Swiss File Knife Base from Sourceforge.
  • Open the Windows CMD command line, Mac OS X Terminal or Linux shell.
  • OS X : type mv sfk-mac-64.exe sfk and chmod +x sfk then ./sfk
  • Linux: type mv sfk-linux-64.exe sfk and chmod +x sfk then ./sfk. OS X and Linux syntax may differ, check the help within the tool.
sfk rename dirname "/fromtext/totext/" [to outdir]
sfk rename -dir mydir -file .txt -pat "/fromtext/totext/"

flexible multi file rename using rename expressions.

to rename just one file (in scripts) use: sfk renfile

handle with care.
- multi file rename may cause problems in folders which are
  controlled by version control systems like cvs or svn,
  or within workspaces of programs that keep file references,
  like video editing software or IDE's.
- keep backups of original files in case that output
  filenames are unexpected or cause conflicts.

to make things more safe, by default
- sfk rename runs on the given folder only, without sub folders.
  use option -withsub to include sub folders.
- sfk rename runs in simulation mode, previewing changes without
  modifying anything. add option -yes to apply changes.

syntax of /fromtext/totext/

rename expressions are a subset of simple expressions, supporting
an extra symbol '#' within totext. slash patterns are not enabled
by default but require an option -spat. instead of "/" around
/from/to/ any unique char can be used, like in _fromtext_totext_

within /fromtext/ you may use:

   *            for any number of chars (0 or more)
   ?            for exactly one character
   [n chars]    for exactly n characters

within /totext/ you may use:

   [part1]      fill in part  1 extracted from name
   [parts 1,3]  fill in parts 1 and 3
   [parts 1-3]  fill in parts 1 to  3
   #1           fill in part  1, same as [part1]
   #10          fill in part 10
   #            without digits: fill in next part
   #5##         fill in parts 5,6,7

with option -spat only:

   \[           search or fill in the '[' character
   \] \# * \?   same for characters ] # * ?
   \\           search or fill in the backslash '\'

extra parameters
   to outdir    after rename, move the file to folder outdir
                which must be on the same partition.

options
   -pat x       to specify /from/to/ pattern after
                long -dir ... -file ... parameters
   -spat        enable slash patterns like \xnn
                must be given before or after pattern
   -exact       fromtext must match whole filename,
                not just a part of it.
   -verbose     show part numbers within /from/ text
   -quiet       do not show changed names
   -[no]stat    show statistics or not

accent or umlaut characters in the search pattern
   may have to be rewritten by wildcard "?" to match.

quoted multi line parameters are supported in scripts
   using full trim. type "sfk script" for details.

aliases
   sfk rensub   same as "sfk rename -withsub"

beware of Shell Command Characters.
   to find or replace text patterns containing spaces or special
   characters like <>|!&?* you must add quotes "" around parameters
   or the shell environment will destroy your command. for example,
   pattern /foo bar/other/ must be written like "/foo bar/other/"
   within a .bat or .cmd file the percent % must be escaped like %%
   even within quotes: sfk echo -spat "percent %% is a percent \x25"

about example numbers with [brackets]
   if you see [1] type "sfk cmd 1" for whole command in one line.

web reference
   http://stahlworks.com/sfk-rename

more in the SFK Book
   the SFK Book contains a 60 page tutorial, including
   rename examples with input and output filenames.
   type "sfk book" for details.

see also
   sfk xrename  rename files and folder names using
                full SFK Expressions and many patterns.
   sfk renfile  rename just a single file
   sfk rendir   rename just a single folder

examples: short syntax step by step
   sfk rename mydir
      list all files of mydir (nothing is changed)
   sfk ren mydir "/-1540-*.mts/"
      list files in mydir with "-1540-" in their
      filename, followed by any characters, until .mts.
      sfk will show an info text telling about the part
      numbers the search mask (fromtext) is made of.
   sfk ren mydir "/-1540-*.mts/[part1]News[part3]/"
      same as above, but extended to change the wild-
      card part "*" of a match to "News".
   sfk ren mydir "/-1540-*.mts/#News#3/"
      same as above, but shorter to type. "#" without
      a number takes part1, #3 takes part 3.
   sfk ren mydir "/-1540-*.mts/#News#3/" to news
      after rename move the file to folder "news".
      finally add -yes to apply filename changes.

examples: flexible syntax step by step
   sfk rename -dir mydir -file chan
      list files of mydir having "chan" in their name
   sfk ren -dir mydir -file chan -pat "/-1540-*.mts/"
      list chan files in mydir with "-1540-" in their
      filename, followed by any characters, until .mts
   sfk ren -dir mydir -file chan -pat "/-1540-*.mts/#News#3/"
      within filenames of mydir containing parts
      -1540-, then anything, then .mts, like in:
         Channel3-01312015-1540-BizInfo_Any.mts
      change the second part "*" into "News":
         Channel3-01312015-1540-News.mts

further examples
   sfk rename . /.mts/.mpg/
      change all .mts to .mpg in current folder
   sfk rename mydir -spat "/\xE4/ae/"
      change special character with code 0xE4 to ae.
      use sfk xrename to supply many of such patterns.
   sfk ren -dir mydir -file .txt -pat "/foo/bar/"
      replace foo by bar in all .txt filenames within mydir
   sfk ren -dir mydir -file "*-????2015-"
    -pat "/-[2 chars][2 chars][4 chars]-[4 chars]-*.
    /-[parts 4,2,3]-[parts 6-9]/"
      in folder mydir change date string in files like: [20]
         Channel3-01312015-1540-BizInfo_Any.mts
      to a format with year first:
         Channel3-20150131-1540-BizInfo_Any.mts
   sfk ren -dir mydir -file "*-????2015-"
    -pat "/-[2 chars][2 chars][4 chars]-[4 chars]-*.
    /-#4#2#-#6###/"
      same as above, only shorter. #6### means to take
      part 6 and then the three following parts 7,8,9. [21]
 
sfk rename dirname "/fromtext/totext/" [to 
   outdir]
sfk rename -dir mydir -file .txt -pat 
                        "/fromtext/totext/
                        "

flexible multi file rename using rename 
expressions.

to rename just one file (in scripts) use: 
sfk renfile

handle with care.
- multi file rename may cause problems in 
  folders which are controlled by version
  control systems like cvs or svn, or
  within workspaces of programs that keep
  file references, like video editing
  software or IDE's.
- keep backups of original files in case 
  that output filenames are unexpected or
  cause conflicts.

to make things more safe, by default
- sfk rename runs on the given folder only, 
  without sub folders. use option -withsub
  to include sub folders.
- sfk rename runs in simulation mode, 
  previewing changes without modifying
  anything. add option -yes to apply
  changes.

syntax of /fromtext/totext/

rename expressions are a subset of simple 
expressions, supporting an extra symbol
'#' within totext. slash patterns are not
enabled by default but require an option
-spat. instead of "/" around /from/to/ any
unique char can be used, like in
_fromtext_totext_

within /fromtext/ you may use:

   *            for any number of chars 
                (0 or more)
   ?            for exactly one character
   [n chars]    for exactly n characters

within /totext/ you may use:

   [part1]      fill in part  1 extracted 
                from name
   [parts 1,3]  fill in parts 1 and 3
   [parts 1-3]  fill in parts 1 to  3
   #1           fill in part  1, same as 
                [part1]
   #10          fill in part 10
   #            without digits: fill in 
                next part
   #5##         fill in parts 5,6,7

with option -spat only:

   \[           search or fill in the '[' 
                character
   \] \# * \?   same for characters ] 
                # * ?
   \\           search or fill in the 
                backslash '\'

extra parameters
   to outdir    after rename, move the file 
                to folder outdir which must
                be on the same partition.

options
   -pat x       to specify /from/to/ 
                pattern after long -dir ...
                -file ... parameters
   -spat        enable slash patterns 
                like \xnn must be given
                before or after pattern
   -exact       fromtext must match whole 
                filename, not just a part
                of it.
   -verbose     show part numbers within 
                /from/ text
   -quiet       do not show changed names
   -[no]stat    show statistics or not

accent or umlaut characters in the search 
pattern
   may have to be rewritten by wildcard "?" 
   to match.

quoted multi line parameters are supported 
in scripts
   using full trim. type "sfk script" for 
   details.

aliases
   sfk rensub   same as "sfk rename 
                -withsub"

beware of Shell Command Characters.
   to find or replace text patterns 
   containing spaces or special
   characters like <>|!&?* you
   must add quotes "" around parameters
   or the shell environment will destroy
   your command. for example, pattern /
   foo bar/other/ must be written like "/
   foo bar/other/" within a .bat or .cmd
   file the percent % must be escaped
   like %% even within quotes: sfk echo
   -spat "percent %% is a percent \x25"

about example numbers with [brackets]
   if you see [1] type "sfk cmd 1" for 
   whole command in one line.

web reference
   http://stahlworks.com/sfk-rename

more in the SFK Book
   the SFK Book contains a 60 page 
 tutorial, including
   rename examples with input and output 
   filenames. type "sfk book" for details.
   

see also
   sfk xrename  rename files and folder 
                names using full SFK
                Expressions and many
                patterns.
   sfk renfile  rename just a single file
   sfk rendir   rename just a single 
                folder

examples: short syntax step by step
   sfk rename mydir
      list all files of mydir (nothing is 
      changed)
   sfk ren mydir "/-1540-*.mts/"
      list files in mydir with "-1540-" in 
      their filename, followed by any
      characters, until .mts. sfk will show
      an info text telling about the part
      numbers the search mask (fromtext) is
      made of.
   sfk ren mydir 
   "/-1540-*.mts/[part1]News[part3]/"
      same as above, but extended to change 
      the wild- card part "*" of a match to
      "News".
   sfk ren mydir "/-1540-*.mts/#News#3/"
      same as above, but shorter to type. 
      "#" without a number takes part1, #3
      takes part 3.
   sfk ren mydir "/-1540-*.mts/#News#3/" 
   to news
      after rename move the file to folder 
      "news". finally add -yes to apply
      filename changes.

examples: flexible syntax step by step
   sfk rename -dir mydir -file chan
      list files of mydir having "chan" in 
      their name
   sfk ren -dir mydir -file chan -pat 
                        "/-1540-*.mts/"
      list chan files in mydir with 
      "-1540-" in their filename, followed
      by any characters, until .mts
   sfk ren -dir mydir -file chan -pat 
                        "/-1540-*.mts/
                        #News#3/"
      within filenames of mydir containing 
      parts -1540-, then anything, then .
      mts, like in:
         
Channel3-01312015-1540-BizInfo_Any.mts
change the second part "*" into "News":
Channel3-01312015-1540-News.
mts

further examples sfk rename . /.mts/.mpg/ change all .mts to .mpg in current folder sfk rename mydir -spat "/\xE4/ae/" change special character with code 0xE4 to ae. use sfk xrename to supply many of such patterns. sfk ren -dir mydir -file .txt -pat "/foo/bar/" replace foo by bar in all .txt filenames within mydir sfk ren -dir mydir -file "*-????2015-" -pat "/-[2 chars][2 chars][4 chars]-[4 chars]-*. /-[parts 4,2,3]-[parts 6-9]/ " in folder mydir change date string in files like: [20] Channel3-01312015-1540-BizInfo_Any.mts to a format with year first: Channel3-20150131-1540-BizInfo_Any. mts sfk ren -dir mydir -file "*-????2015-" -pat "/-[2 chars][2 chars][4 chars]-[4 chars]-*. /-#4#2#-#6###/" same as above, only shorter. #6### means to take part 6 and then the three following parts 7,8,9. [21]

you are viewing this page in mobile portrait mode with a limited layout. turn your device right, use a desktop browser or buy the sfk e-book for improved reading.

 
sfk is a free open-source tool, running instantly without installation efforts. no DLL's, no registry changes - just get sfk.exe from the zip package and use it (binaries for windows, linux and mac are included).

 

the Endless Image 🍣 Sushi