1

ok this is working:

trace -t lstat64 -v lstat64 ls "myfilename" 2>pipefile
cat pipefile | grep ct | cut -d '[' -f 2 | cut -d ' ' -f 2

But i dont want to have to use the file "pipefile", how can i redirect the output straight to my grep and cut?

dmoody256
  • 538
  • 4
  • 12

2 Answers2

0

I got it, I just realized i was getting stderr confused with stdout, this was my solution:

trace -t lstat64 -v lstat64 ls "myfilename" 2>&1 | grep ct | cut -d '[' -f 2 | cut -d ' ' -f 2
dmoody256
  • 538
  • 4
  • 12
0

So, you want to ignore stdout and only consider stderr?

trace -t lstat64 -v lstat64 ls "myfilename" 2>&1 1>/dev/null | 
  grep ct | cut -d '[' -f 2 | cut -d ' ' -f 2

First, the stderr file handle is redirected to whatever the stdout file handle refers to, then the stdout file handle is redirected to /dev/null. Then grep can read from stdin whatever is emitted from trace's stderr.

glenn jackman
  • 238,783
  • 38
  • 220
  • 352