Hi, sfk has nicely hauled me out of a hole where I needed to find and replace a string in .pdf files, for which I thank you.
However, when I try to use sfk find to look for a string and return the file name and the offending line, it only seems to return the first 146 characters of the line.
While stabbing around, trying to see what I was doing wrong, it also appeared that sfk find was ignoring anything after character 146, while searching.
C:\testbed>sfk find . file:///
<</Subtype>[ 174.42 744.48 194.19 769.92] /BS<</W>>/F 4/A<</Type/Action/S/URI/URI(file:///C:/Data/NNNNNNNNN/WIP/QRS/Hotlink%20test/Ori
Which has found the string I was after, returned the line but has missed off "ginal%20files%202014-02-25/QRS_Multipage_top.pdf) >>/StructParent 1>>"
...which contains the bit we want to refer to.
Also, if I search for "Ori", it finds the line. If I search for "Original", it doesn't see it.
When converting binary input data to text, sfk find collects word with a maximum length of 80 characters by default, so the string "4/A...Ori" is truncated at column 80.
Try -wrap=190 to change this. As it is now, there is a limit of 190 characters for the -wrap option. It may also happen that words are truncated at the dot "." or ",;" without an option to change that. I will look into the code if this can be improved.
Thanks for that - I'm not sure I'm using the option correctly though. If I enter:
sfk find -wrap=189 . file:///
I get the same output, truncated at the same point. I did have a look for wrap in the help, but it didn't seem to be there associated with the find command:
C:\Data\testbed>sfk ask wrap
sfk snapto=outfile [-pure] [-nosub] -dir mydir1 -file .ext1 .ext2
-wrap[=n] auto-wrap long lines [near column n], e.g. -wrap=80.
sfk filter [-memlimit=n] -write inoutfile -replacepattern(s)
text processing options
-wrap[=n] wrap output lines near console width [or at column n].
sfk strings [-umlauts] [-wrapbin=n] filename
at column 80 by default, which can be changed by -wrapbin or -wrap.
sfk list ... +[f]view [-noshl|-nocol] ["-..."]
-wrap[=n] wrap lines at column n. currently, this feature
i just tried a synthetic test (a line of text preceeded
by a null byte) which may not be helpful in this case.
you may try -wrapbin=180 instead, which sets wrapping
explicitely for binary data (which pdf is). but if that
doesn't help then it will take some time until i rework the code.
Nope! It didn't I'm afraid. Thanks for looking at this, I've found a workaround using Windows find so I'm OK now.
Log in to post a comment.