You could start by trying to determine 1) the appropriate data structure on which to operate, and 2) if there's a predefined library function already doing that what is needed. In this case I wouldn't waste time with reading the file line by line, reading it all at once instead. So it's an array to operate on.
The function needs to apply a chooser on all elements of the array, like a combination of filter and projection. So it's Array.pick/Array.tryPick
if you're only interested in the first occurence, or Array.choose
to retrieve all instances your predicate is true. Now all we do is pattern matching with a guard clause to check for your condition.
let findTextInFile nameOfFile txtToSearch =
System.IO.File.ReadAllLines nameOfFile
|> Array.choose (fun s ->
match s.Split ',' with
| [| _; y; z |] when y = txtToSearch -> Some z
| _ -> None )
findTextInFile @"c:\temp\xxx" "1dd3"
// val it : string [] = [|"444"|]