我有一个文本文件,其中包含以下文本行
AAA http://hello.world.com/12345/11.*aa*
AAB AAC http://hello.world.com/12346/11.*aa*
如何打印以AAA开头的网址?
cat file.txt | tr -d ' ' | grep -i 'AAA' | cut -f2 -d':'
上面只显示//hello.world.com/12345/11.*aa*
,但当我扩展变量时,我当然可以编码 http:,这只是一种混乱的做法。
答案 0 :(得分:2)
$ sed -n 's/^AAA *//p' file
http://hello.world.com/12345/11.*aa*
答案 1 :(得分:1)
只需 awk (假设 url 是每行的最后一项):
awk '/^AAA/{ print $NF }' file.txt
答案 2 :(得分:0)
假设标准是URL总是在行的最后一个空格之后(至少对于以AAA开头的行):
$: echo "AAA http://hello.world.com/12345/11.*aa*" | grep -i "^AAA" | sed 's/^.* //g'
http://hello.world.com/12345/11.*aa*
sed位匹配从行开头到最后一个空格的所有文本并将其删除。
回声只是我测试过的一个例子。你会用:
grep -i "^AAA" file.txt | sed 's/^.* //g'
答案 3 :(得分:0)
grep -oP "^AAA.*\Khttp.*" file
输出:
http://hello.world.com/12345/11.*aa*
答案 4 :(得分:0)
cat file.txt | grep "^AAA" | rev | cut -d ' ' -f1 | rev
输出:http://hello.world.com/12345/11.*aa*
<强>详细信息:强>
cat file.txt
:打印文件内容。
grep "^AAA"
:只保留&#34; AAA&#34;。
rev
:反转每行的字符。
cut -d ' ' -f1
:使用空格作为分隔符拆分每一行并保留第一列。
rev
:反转每行的字符。