Bash 是否可以在不首先写入文件的情况下解析标准错误?

Bash 是否可以在不首先写入文件的情况下解析标准错误?,bash,sed,awk,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 像这样的 ls/fake/file 2>&1 | awk-F:“{print$2}” 任何一

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

$ 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
像这样的

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

任何一种方法都应该获取文件名

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


这里描述了许多方法:解析并不完全正确,但这:
ls/fake/file 2>&1
正是我想要的。谢谢我认为这两个
awk
解决方案并不能满足您的期望。
ls /fake/file 2>&1 | awk '{print $4}' | awk -F: '{print $1}'
ls /fake/file 2>&1 | sed 's/.* \(.*\):.*/\1/'