分类目录归档:Linux

C/C++ key-value string parsing with strsep

#include <stdio.h>
#include <string.h>

void parse_key_value(char* str) {
    while (char* value = strsep(&str, "&")) {
        char* key = strsep(&value, "=");
        if (key != NULL && value != NULL) {
            printf("key %s value %s\r\n", key, value);
        }
    }
}

int main() {
    char stra[] = "&asd23&sd=900&c=0&";
    printf("%s\r\n", stra);
    parse_key_value(stra);
    
    char strb[] = "asd=23";
    printf("%s\r\n", strb);
    parse_key_value(strb);
    
    return 0;
}
output:
&asd23&sd=900&c=0&
key sd value 900
key c value 0
asd=23
key asd value 23

实用Linux命令记录

Emacs Vim快捷键说明

# 当前文件夹内文件(夹)占用空间按从大到小排序
du -sh * | sort -hr

# 每10秒统计一次当前目录占用空间
while true; do du -sh .; sleep 10; done
# 或者
watch -n 10 du -sh .

# 生成随机字符串
head -c 32 /dev/random | base64

# 统计当前文件夹下文件数量 包括子文件夹
ls -lR | grep "^-" | wc -l

# 统计当前文件夹下文件夹数量 包括子文件夹
ls -lR | grep "^d" | wc -l

# mysqldump导出数据,每行独立insert
mysqldump -u xxx -p xxx $db $table -qc --extended-insert=FALSE --skip-comments