在文本文件中,在某个" - >"之后选择行。只有字符,忽略它之前的行

时间:2018-02-23 10:48:36

标签: bash awk grep

如何在某个" - >"之后拾取字符。仅来自文本文件。

我有一个名为a.txt的文件。它有许多以下格式的行:

/abc/def/ghi/jkl.txt->/mno/pqr/stu/vwy.txt

1)我想在">"之后只打开一行,怎么做?

2)我还想要一种在" - >"之前打印线的方法。

case1的预期输出)/mno/pqr/stu/vwy.txt

case2的预期输出)/abc/def/ghi/jkl.txt

2 个答案:

答案 0 :(得分:2)

对于此任务,

awk似乎比grep更有用:

所以,要获得“ - >”之前的部分你可以使用:

awk -F"->" '{print $1}' filename

对于“ - >”之后的部分:

awk -F"->" '{print $2}' filename

答案 1 :(得分:1)

第一种情况:

grep -A1 "\->" --no-group-separator a.txt | grep -v "\->"

第二种情况:

grep -B1 "\->" --no-group-separator a.txt | grep -v "\->"

A1B1标记分别取消之前和之后的行,--no-group-separator确保行之间没有任何内容,grep -v "\->"删除{{1}的实际行}。