Help File
Wish List


Hosted by:
  VA Linux


What Is Ftwalk?

Ftwalk is a general purpose script programming language. It is based on the concepts of Awk, but has been extended to support features such as are found in languages like Perl, Python, and Ruby.

Ftwalk is free software, licensed under the GPL.

Ftwalk is:

  • Run as ftwalk, it searches file trees, tests files, and performs actions based on test/action pairs.
  • Run as hawk, it searches for patterns in files, like awk, but with many more features.
  • You can give it a script on the command line, or in a file. If the script has a MAIN { } block, it just executes that block once.
  • It is extensible. You can define your own input generators. You can load dynamic libraries.
  • Run with the -i option, it works as a calculator: you can type in expressions, which it compiles and runs.
  • Author Tom Hull's favorite toy.

Ftwalk may prove to be particularly useful for:

  • C/C++ programmers to use interactively for testing logic, system calls, and prototyping.
  • Writing software test scripts.
  • Redundant copy backups, software install, and verification scripts.
  • As a find replacement.

Whither Hawk?

Hawk is an alias for Ftwalk, which causes it to process input files (like awk), instead of searching file trees.

One possible future direction for Ftwalk would be to assume a more general identity as Hawk. (If so, expect to see a saxophone logo, in contrast to the more obvious allusions.)

The State of the Project

Hawk / Ftwalk was developed mostly in 1994-1996, when it evolved from a flexible file search tool (a find replacement) to a general purpose script language (a perl wannabe). Since 1996, it has been sporadically maintained. In a nutshell, it got too big for one person to maintain, but it never attracted more people to support it.

At this point, there is no chance that Hawk might ever seriously compete with the likes of Perl or Python -- one glance at the contributed libraries, applications, and available documentation shows the scale of such an effort. At most, Hawk might be an idiosyncratic personal tool. On the other hand, we all have our idiosyncrasies.

It should be obvious that the future of Hawk / Ftwalk depends on user interest and participation. The present intention is to scale work back to be Linux-only, and to limit the compiler to the latest g++. This isn't carved in stone, but it will make the project more manageable. The planned applications focus is on:

  • Interactive support for C/C++ programmers.
  • Linux system and application test suites.

On the other hand, there are a number of problems which are believed to limit Ftwalk's current usefulness: see What's Wrong with Hawk / Ftwalk?.


Hawk / Ftwalk is your software. If you see any need or value in it, you can use it, you can work on it, you can borrow from it, you can take the whole thing over and run with it.

On the other hand, this software hasn't been actively developed for quite a while now. The mail lists have mostly become spam magnets. If you need to get in touch with the author, go to www.tomhull.com and look around for further directions.