Jump to content
Sign in to follow this  

Shell Script Fun

Recommended Posts

The attached file demonstrates simple integration of unix shell scripting with FileMaker.

It takes a list of values, sorts them, finds the unique values, and counts the occurrences of each unique value, and presents the top 5 to you.

By itself this is a minor trick but it has interesting implications for reporting and other applications. It requires a Mac running OSX.

When you try it, try using PartNumber as the selected field for your query. Note that the file will also summarize values from a second file if you have any other database open.

The applescript looks like this:

choose from list (get name of every field)

set whichfield to item 1 of result

set theData to field whichfield of document 1

set AppleScript's text item delimiters to ASCII character 10

Set shellStuff to " | sort | uniq -c | sort -rn | head -5"

do shell script "echo " & quoted form of (theData as text) & shellstuff

display dialog result


Share this post

Link to post
Share on other sites

This is a very powerful, fast, versatile technique that can substantially simplify report generation. Get summary data almost instantly from ANY open database without writing scripts or layouts in the target database.

Share this post

Link to post
Share on other sites

VERY slick! I learned some neat Applescript tricks here.

Know any other Filemaker > BSD > Filemaker tricks? :-)

Share this post

Link to post
Share on other sites

Yup. How about exporting your data to a specified file name?

Go To Layout [someLayout]

Copy All records

Perform applescript

copy cell "gFileName" to fileName

-- assumes you have pre-populated it

-- with your desired flle name

-- don't put this field on the layout

-- you are copying records from

Do shell script "pbpaste > ~/desktop/" & fileName & ".txt"

Share this post

Link to post
Share on other sites


I notice that it makes use of certain special ASCII characters in some cases - translating LF/CR to VT (x0b) and using GS (x1d) for some purpose I haven't figured out yet (repeating field separator?) As long as those things aren't lost completely in the process, though, I'm happy. :-)

Very nice. Thanks!

Share this post

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Create New...

Important Information

By using this site, you agree to our Terms of Use.