亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何對模式后的內容進行grep?

如何對模式后的內容進行grep?

呼喚遠方 2019-07-24 14:14:56
如何對模式后的內容進行grep?例如,給定一個文件:potato: 1234 apple: 5678 potato: 5432 grape: 4567 banana: 5432 sushi: 56789我想為所有以potato:但只需列出下面的數字potato:..所以在上面的例子中,輸出是:1234 5432我怎么能這么做?
查看完整描述

3 回答

?
函數式編程

TA貢獻1807條經驗 獲得超9個贊

grep 'potato:' file.txt | sed 's/^.*: //'

grep 'potato:' file.txt | cut -d\   -f2

grep 'potato:' file.txt | awk '{print $2}'

grep 'potato:' file.txt | perl -e 'for(<>){s/^.*: //;print}'

awk '{if(/potato:/) print $2}' < file.txt

perl -e 'for(<>){/potato:/ && s/^.*: // && print}' < file.txt




查看完整回答
反對 回復 2019-07-26
?
有只小跳蛙

TA貢獻1824條經驗 獲得超8個贊

sed -n 's/^potato:[[:space:]]*//p' file.txt

人們可以認為grep是一個受限的SED,或者SED是一個廣義的grep。在這種情況下,SED是一個很好的、輕量級的工具,可以做你想做的事情-當然,還有其他一些合理的方法來實現它。


查看完整回答
反對 回復 2019-07-26
?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

這將在每一次匹配之后打印所有內容,只在同一行上:

perl -lne 'print $1 if /^potato:\s*(.*)/' file.txt

這樣做也是一樣的,但也會打印后續的所有行:

perl -lne 'if ($found){print} elsif (/^potato:\s*(.*)/){print $1; $found++}' file.txt

使用以下命令行選項:

  • -n

    在輸入文件的每一行周圍循環。
  • -l

    在處理之前移除換行符,然后將它們添加回
  • -e

    執行perl代碼




查看完整回答
反對 回復 2019-07-26
  • 3 回答
  • 0 關注
  • 428 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號