我想用sed或awk在一个大的txt文件中的一行中选择一个特定的字符串。但我总是得到整行,每行长达100.000+个字符。
我得到了例子:
</div><div class="follow withFollow" id="user-id-1234567890"> <a href="/app/users/id-1234567890/test/ </div><div class="follow withFollow" id="user-id-0123456789"> <a href="/app/users/id-0123456789/test/" 12345678990 1234877890 1234767890 1245456780 123456790 withFollow" id="user-id-9873456789">
我唯一想要的是数字:
withFollow" id="user-id-1234567890">, withFollow" id="user-id-0123456789">, withFollow" id="user-id-9873456789">
输出:
1234567890
0123456789
9873456789
我尝试了很多:
sed -n '/**user-id-**/,/**">**/p' FILE
awk '/**user-id-**/,/**">**/p' FILE
awk '/**user-id-**/,/**">**/p' FILE | grep -Eo "[0-9]{1,15}" > output.txt
对于最后一个,我只在同一行中得到其他数字,因此不仅在id="user-id-1234567890">
内。
答案 0 :(得分:3)
您可以使用grep:
void switchLED(){
int connectionId = Serial1.parseInt();
Serial1.find("LED=");
int setLED = Serial1.parseInt();
Serial.println("Conn: " + String(connectionId) + ", LED: " + String(setLED));
if (setLED == 1){
digitalWrite(LED, HIGH);
nanoSerial.println("LED=1");
} else {
digitalWrite(LED, LOW);
nanoSerial.println("LED=0");
}
delay(100);
Serial1.println("AT+CIPSEND=" + String(connectionId) + ",145");
delay(100);
Serial1.println("HTTP/1.1 200 OK");
Serial1.println("Access-Control-Allow-Origin: *");
Serial1.println("Content-Length:05");
Serial1.println("Connection: close");
Serial1.println("Content-Type: application/x-www-form-urlencoded");
Serial1.println("");
Serial1.println("LED=" + String(setLED));
delay(500);
Serial1.println("AT+CIPCLOSE=" + String(connectionId));
}
或者,如果您只想匹配数字:
{{1}}