是否可以解析标准错误而无需先写入文件?

时间:2014-01-15 00:58:27

标签: bash sed awk

在一个简单的例子中,假设我们有一些标准错误:

$ ls /fake/file
ls: /fake/file: No such file or directory

问题:是否可以从标准错误中解析出“/fake/file”而无需先将其写入文件?例如:

$ ls /fake/file 2> tmp.file; sed 's/.* \(.*\):.*/\1/' tmp.file
/fake/file

2 个答案:

答案 0 :(得分:1)

这样的东西?

ls /fake/file 2>&1 | awk -F: '{print $2}'

答案 1 :(得分:0)

无论哪种方式都应该获取文件名

ls /fake/file 2>&1 | awk -F: '{print $2}' | awk '{print $3}'

ls /fake/file 2>&1 | awk '{print $4}' | awk -F: '{print $1}'

ls /fake/file 2>&1 | sed 's/.* \(.*\):.*/\1/'