Command-Line
字元串處理:刪除前綴並擷取雙引號前的所有字元
我有這個數據
photo for Kurtis Hardy" data- photo for Paul Hoven" data-sr
我想過濾這個只得到中間的名字。我用這個命令來獲取那些行
cat File| grep -E -o 'photo for.{0,20}'
這裡不需要貓。讓貓一個人呆著。
我假設每個名字都在“照片”之後開始,並以第一個“結束”,如您的範例所示。如果不是這種情況,請告訴我。否則我們將需要更多地考慮什麼是“名字” .
grep -E 'photo for [^"]{0,20}"' File | sed 's/photo for \([^"]\{0,20\}\)".*/\1/'
或者更簡單:
sed -n 's/photo for \([^"]\{0,20\}\)".*/\1/p' File
perl
cat File | perl -nE'm/^photo for ([^"]+)/ && say $1'
或者
perl -nE'm/^photo for ([^"]+)/ && say $1' File
這會去除前綴
photo for
並擷取所有字元,直到"
.