Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8379225
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 9, 20262026-06-09T16:07:14+00:00 2026-06-09T16:07:14+00:00

find . -type f -exec sh -c ‘ if [cat ${1} == abc ]

  • 0
find . -type f -exec sh -c '  if [cat ${1} == "abc" ]   then  echo ${1} fi' _ {} \;

I got this error:

_: -c: line 1: syntax error: unexpected end of file

What I what to do here is :

find all files in this directory, print file name if file content is abc.

Thank you !

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-09T16:07:15+00:00Added an answer on June 9, 2026 at 4:07 pm

    The problem here is that the [ (aka ‘test’) needs to be separated from cat by a space, like so:

    find . -type f -exec sh -c 'if [ cat ${1} = "abc" ]; then  echo ${1}; fi' _ {} \;
    

    You’re also missing semicolons after the if statement and before the fi statement (it looks like you had these on separate lines originally, based on the spacing that was there, probably due to the way that you had it indented)

    As pointed out in the comment below, running this will give the error message too many arguments in if []. Using double quotes around "cat ${1}" will avoid the error message, but this simply compares the expansion of "cat ${1}" with "abc". What you’re probably looking for is [ "$(cat ${1})" == "abc" ]. Unfortunately, this is likely to cause problems when you compare a very long file with "abc".

    You could use grep to do the test, or take a checksum (e.g. shasum) of the file, and test that against the checksum of "abc", depending on what why you’re doing the test.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

So far I've come up with this: find . -name 'CVS' -type d -exec
I've tried to change filenames using following script: find dir/ -type f -exec mv
I have the following command find /var -type f -exec grep param1 {} \;
find `pwd` -type f -name *.ksh -exec grep -H .ksh '{}' \; -print 2>/dev/null
> find . -type f -exec print {} \; find: cannot execute print:: No
The following works from the terminal no problem find testDir -type f -exec md5sum
There's this line I want to use in a ksh script : find .
I happen need to use the following shell script find . -type f -exec
As I know the commands like find <dir> -type f -exec rm {} \;
I executed the following command: find / -type f -name fs-type -exec svnlook tree

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.