⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rename.c

📁 Util-linux 软件包包含许多工具。其中比较重要的是加载、卸载、格式化、分区和管理硬盘驱动器
💻 C
字号:
/* * rename.c - aeb 2000-01-01 *--------------------------------------------------------------#!/bin/shif [ $# -le 2 ]; then echo call: rename from to files; exit; fiFROM="$1"TO="$2"shiftshiftfor i in $@; do N=`echo "$i" | sed "s/$FROM/$TO/g"`; mv "$i" "$N"; done-------------------------------------------------------------- * This shell script will do renames of files, but may fail * in cases involving special characters. Here a C version. */#include <stdio.h>#include <string.h>#include <stdlib.h>#include <errno.h>#include "nls.h"static char *progname;static intdo_rename(char *from, char *to, char *s) {	char *newname, *where, *p, *q;	int flen, tlen, slen;	where = strstr(s, from);	if (where == NULL)		return 0;	flen = strlen(from);	tlen = strlen(to);	slen = strlen(s);	newname = malloc(tlen+slen+1);	if (newname == NULL) {		fprintf(stderr, _("%s: out of memory\n"), progname);		exit(1);	}	p = s;	q = newname;	while (p < where)		*q++ = *p++;	p = to;	while (*p)		*q++ = *p++;	p = where+flen;	while (*p)		*q++ = *p++;	*q = 0;	if (rename(s, newname) != 0) {		int errsv = errno;		fprintf(stderr, _("%s: renaming %s to %s failed: %s\n"),				  progname, s, newname, strerror(errsv));		exit(1);	}	return 1;}intmain(int argc, char **argv) {	char *from, *to, *p;	int i, ct;	progname = argv[0];	if ((p = strrchr(progname, '/')) != NULL)		progname = p+1;	setlocale(LC_ALL, "");	bindtextdomain(PACKAGE, LOCALEDIR);	textdomain(PACKAGE);	if (argc == 2) {		if (!strcmp(argv[1], "-V") || !strcmp(argv[1], "--version")) {			printf(_("%s from %s\n"),			       progname, util_linux_version);			return 0;		}	}	if (argc < 3) {		fprintf(stderr, _("call: %s from to files...\n"), progname);		exit(1);	}	from = argv[1];	to = argv[2];	ct = 0;	for (i=3; i<argc; i++)		ct += do_rename(from, to, argv[i]);	return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -