linux怎么把一行中指定字符串以外的字符都去掉只顯示指定字符串,該用什么命令,grep?awk?sed?
比如說,一個(gè)文件中有一行是:
fasfaskjkjkwordkfjkdsjfksjxxxxxxxxfsafadsfkklabcd.fdsf342
這個(gè)指定的字符串是指以單詞 word 開頭,以單詞 abcd 結(jié)尾,中間是任意0個(gè)或多個(gè)字符,那怎么把符合這個(gè)特征的字符串截取出來,兩邊的沒用字符都扔掉?也就是顯示如下:
wordkfjkdsjfksjxxxxxxxxfsafadsfkklabcd
業(yè)精于勤,荒于嬉;行成于思,毀于隨。
grep:
echo ...|grep -oP 'word.*abcd'
sed:
echo ... |sed -r 's/.*(word.*abcd).*/\1/g'
awk:
echo ... |awk '{print gensub(".*(word.*abcd).*","\\1","g")}'
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號