我知道这两个问题已被多次覆盖,但我无法想出如何将两个命令混合在一起:
在引用
之间获取字符串sed 's/[^"]*"\([^"]*\)".*/\1/' "$file"
从文件中获取第2行
sed '2q;d' "$file"
非常感谢你的帮助。
编辑:
输入文件如下:
#!/bin/bash
# "/path/to/folder/with/file.ext"
some others lines with quoted string
输出
/path/to/folder/with/file.ext
答案 0 :(得分:4)
Awk将是我首选的解决方案。
awk -F'"' 'NR==2{print $2}'
答案 1 :(得分:4)
您可以使用此sed组合2 sed命令:
sed '2s/[^"]*"\([^"]*\)".*/\1/p;d;q' file
/path/to/folder/with/file.ext
答案 2 :(得分:3)
您可以通过以下方式组合这两个命令:
sed -n '2s/[^"]*"\([^"]*\)".*/\1/p' filename
-n
会禁止自动打印图案空间2
之前s
导致替换在第2行执行
p
打印当前模式空间为了您的输入,它会产生:
/path/to/folder/with/file.ext