Unix ls

The computer company you work for is introducing a brand new computer line and is developing a new Unix-like operating system to be introduced along with the new computer. Your assignment is to write the formatter for the ls function.
Your program will eventually read input from a pipe (although for now your program will read from the input). Input to your program will consist of a list of (F) filenames that you will sort (ascending based on the ASCII character values) and format into (C) columns based on the length (L) of the longest filename. Filenames will be between 1 and 60 (inclusive) characters in length and will be formatted into left-justified columns. The rightmost column will be the width of the longest filename and all other columns will be the width of the longest filename plus 2. There will be as many columns as will fit in 60 characters. Your program should use as few rows (R) as possible with rows being filled to capacity from left to right.

Input

The input will contain an indefinite number of lists of filenames. Each list will begin with a line containing a single integer (1 <= N <= 100). There will then be N lines each containing one left-justified filename and the entire line's contents (between 1 and 60 characters) are considered to be part of the filename. Allowable characters are alphanumeric (a to z, A to Z, and 0 to 9) and from the following set { ._- } (not including the curly braces). There will be no illegal characters in any of the filenames and no line will be completely empty.

Immediately following the last filename will be the N for the next set or the end of file. You should read and format all sets in the input.

Output

For each set of filenames you should print a line of exactly 60 dashes (-) followed by the formatted columns of filenames. The sorted filenames 1 to R will be listed down column 1; filenames R+1 to 2R listed down column 2; etc.

Sample Input

10
tiny
2short4me
very_long_file_name
shorter
size-1
size2
size3
much_longer_name
12345678.123
mid_size_name
12
Weaser
Alfalfa
Stimey
Buckwheat
Porky
Joe
Darla
Cotton
Butch
Froggy
Mrs_Crabapple
P.D.
19
Mr._French
Jody
Buffy
Sissy
Keith
Danny
Lori
Chris
Shirley
Marsha
Jan
Cindy
Carol
Mike
Greg
Peter
Bobby
Alice
Ruben

Sample Output

12345678.123 size-1
2short4me size2
mid_size_name size3
much_longer_name tiny

shorter very_long_file_name

Alfalfa Cotton Joe Porky
Buckwheat Darla Mrs_Crabapple Stimey

Butch Froggy P.D. Weaser

Alice Chris Jan Marsha Ruben
Bobby Cindy Jody Mike Shirley
Buffy Danny Keith Mr._French Sissy
Carol Greg Lori Peter

0

1个回答

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Unix ls
The computer company you work for is introducing a brand new computer line and is developing a new Unix-like operating system to be introduced along with the new computer. Your assignment is to write the formatter for the ls function.nYour program will eventually read input from a pipe (although for now your program will read from the input). Input to your program will consist of a list of (F) filenames that you will sort (ascending based on the ASCII character values) and format into (C) columns based on the length (L) of the longest filename. Filenames will be between 1 and 60 (inclusive) characters in length and will be formatted into left-justified columns. The rightmost column will be the width of the longest filename and all other columns will be the width of the longest filename plus 2. There will be as many columns as will fit in 60 characters. Your program should use as few rows (R) as possible with rows being filled to capacity from left to right.nnnInputnnThe input will contain an indefinite number of lists of filenames. Each list will begin with a line containing a single integer (1 <= N <= 100). There will then be N lines each containing one left-justified filename and the entire line's contents (between 1 and 60 characters) are considered to be part of the filename. Allowable characters are alphanumeric (a to z, A to Z, and 0 to 9) and from the following set ._- (not including the curly braces). There will be no illegal characters in any of the filenames and no line will be completely empty.nnImmediately following the last filename will be the N for the next set or the end of file. You should read and format all sets in the input.nnnOutputnnFor each set of filenames you should print a line of exactly 60 dashes (-) followed by the formatted columns of filenames. The sorted filenames 1 to R will be listed down column 1; filenames R+1 to 2R listed down column 2; etc.nnnSample Inputnn10ntinyn2short4menvery_long_file_namenshorternsize-1nsize2nsize3nmuch_longer_namen12345678.123nmid_size_namen12nWeasernAlfalfanStimeynBuckwheatnPorkynJoenDarlanCottonnButchnFroggynMrs_CrabapplenP.D.n19nMr._FrenchnJodynBuffynSissynKeithnDannynLorinChrisnShirleynMarshanJannCindynCarolnMikenGregnPeternBobbynAlicenRubennnnSample Outputn------------------------------------------------------------n12345678.123 size-1n2short4me size2nmid_size_name size3nmuch_longer_name tinynshorter very_long_file_namen------------------------------------------------------------nAlfalfa Cotton Joe PorkynBuckwheat Darla Mrs_Crabapple StimeynButch Froggy P.D. Weasern------------------------------------------------------------nAlice Chris Jan Marsha RubennBobby Cindy Jody Mike ShirleynBuffy Danny Keith Mr._French SissynCarol Greg Lori Peter
排序检索-400 Unix ls
题目大意:按顺序排列文件名,并按照规则输出。规则:1、以最长文件名的长度len为标准,最后一列文件名的所占长度为len,其他各列文件名长度为len+2;2、文件名从上到下排列,取最少行数。 图像解释: 解题过程:一次AC 正确代码: # include # include # include # include # include # include # include
UVa--400 Unix ls(格式输出)
UVa 400题解模拟 Unix 的 ls 命令。 输入n以及n个文件名,排序后按照列优先的次序左对齐输出。 注意: The rightmost column will be the width of the longest filename and all other columns will be the width of the longest filename plus 2. 据此
unix 高级编程学习第一章1——ls实现
书中一直使用apue.h文件,现在不要apue.h头文件用简单的方法实现。 1.ls命令,列出目录中所有文件的名字,代码如下: #include #include int main(int argc, char *argv[]) { DIR *dp; struct dirent *dirp; if(argc != 2) { printf("usage: list direc
Uva400 Unix ls 【排序+技巧】【例5-8】
入门经典--例5-8--P127 按列优先表达式没想到!
急救,在unix下如何使ls精确到秒?
我在程序中调用ls -t命令,希望能精确到秒,但它好像只精确到分,该怎么办?rn如果不能精确到分,如何使在分内按文件名大小顺序排序?rn万分感谢!
Unix/Linux实践编程 - 如何编写ls(下)
继续讲解如何编写ls -l 可以用stat得到文件属性: Mode:100664 Links: 1 User: 500 Group: 120 Size: 1106 Modetime: 965158604 Name: fileinfo.c Mode 需要转为-rw-rw-r– 编码技术:模式字段是个16位的二进制数,100664是八进制的表示法,方便人们理解; 其中后9位,664表示use...
POJ 1589 Unix ls 排序和字符串处理
http://poj.org/problem?id=1589//#include <cstring> //不可以定义string s;可以用到strcpy等函数 //using namespace std; //#include <string> //可以定义string s;可以用到strcpy等函数 //using namesapce std; //#include <s
Unix/Linux系统编程指南 ls函数的实现
基础: 目录(directory)是文件的列表,目录里面有很多记录(dirent),记录可以是文件/子目录 readdir函数可以读取目录中的记录,并且返回指向目录当前记录的指针 记录(dirent)的结构体定义如下 系统在某个不为人知的地方define了DIR为 directory readdir , closedir 函数都传入directory的指针 目录不会为空,至少有自己,所以当ac...
UVa 400 Unix ls(排序+输出控制)
原题地址https://vjudge.net/problem/UVA-400 给定n个代表文件名的字符串,按字典序排序,再按列优先输出,每行最多输出60个字符,要求输出的行数最少。(最后一列的列宽为最大字符串长度max_len,其余列的列宽为max_len+2个字符) 解题思路本题是《算法竞赛入门经典》的习题5-1,是排序的水题。要使输出的行数最少,那么每一行就要尽可能输出60个字符,但是由于列
Chapter4.1.1linux常用命令 文件处理ls ls
Chapter4.1.1linux常用命令 文件处理ls ls  -rw-r--r--.   1               root      root    963    5月  3  2009     .bashrc                    调用次数    所有者   组        字节   修改时间           文件名 .为隐藏  -代表文件 d开
算法竞赛入门经典第五章例题5-8 Unix ls UVA - 400
https://vjudge.net/problem/UVA-400 #include #include #include #include using namespace std; #pragma warning(disable:4996) int main(){ #ifdef _DEBUG freopen("in", "rb", stdin); //freopen("o
UNIX C函数中是否有类似“ls”的函数调用?
主要考虑效率,不想用system("ls")rn
《unix/linux编程实践教程》学习笔记:第三章 编写ls
概念准备 目录是一种特殊的文件,它的内容是文件和目录的名字,每一个目录都包括两个特殊的项——“.”(当前目录文件列表)和“..”(上一级目录文件列表)。可以通过命令显示隐藏的文件ls -a 显示出来,也可以通过vim .打开目录文件。 编写ls的思路就是读取.文件,通过printf打印。如何读取目录的内容? 学习三个系统调用:opendir,readdir,closedir编写ls#incl
Unix/Linux实践编程 - 如何编写ls (上)
文件树 Unix如何组织磁盘上的文件? 组织成一颗文件树,每个节点是目录或者文件 逻辑概念,通过文件树将物理上分离(多个驱动器或者分区)的文件目录无缝连接 目录 目录是一种特殊文件,有特殊的格式,内容是文件和目录的名字 不同于普通文件,目录文件永不为空: .表示当前目录 … 表示上级目录 vim ./ ../ ./ main.cpp ls* .swp ls如何工作 Open/read ...
UNIX命令介绍---ls cwd cd mkdir rmdir
1.1 ls [语法]: ls [-RadCxmlnogrtucpFbqisf1] [目录或文件......]
关于HP-UX11i版本UNIX下命令 『ls -le』的问题
各位前辈请多指教,此问题急需解决rn我用的UNIX系统为sunos,在sunos上执行『ls -le p.txt』命令显示结果如下:rn -rw-r--r-- 1 root root 679 [color=#FF0000]11月 19 14:22:02 2008 [/color]p.txtrn但客户的服务器是HP-UX11i,命令『ls -le p.txt』的执行结果和『ls -l p.txt』一样:rn -rw-r--r-- 1 root root 679 [color=#FF0000]11月 19日 14:22 [/color]p.txtrn这样的话,我就没有办法取到文件的更新年份了。请问各位前辈有什么办法在HP-UX11i上取得完整的更新时间吗?
弱问:unix下如何在ls时只显示目录?
rt
怎样用c实现unix中的ls系列的命令呢?
ls命令是unix里面最常用的命令了吧?如果要用c实现(是c,不是c++)的话,应该如何实现呢。因为我刚开始学c,不是很熟悉。rn不过我大概想了一下思路:rn 应该遍历到要查看目录的所有文件和子目录,然后再根据各个参数的不同,加各种对文件和目录的属性的提取函数。不过我觉得好复杂。。。呵呵。有没有哪位大虾给我点思路呢?或者有这方面的文档讲解,英文的也可以。谢谢~
如何能让C语言执行一个unix的命令,如:ls
rt
unix 下实现ftp部分功能ls,get,put等等
unix 下实现ftp部分功能ls,get,put,cd,pwd等等功能 C语言代码
[shell] ls '[^abc]' ls [^abc]出错
ls '[^abc]' rnls [^abc]rn均出错,这个例子是照书抄的rnrn请问为什么
ls的简单实现
基于linux系统编写的简单的实现ls功能
ls用法
下面命令仅仅列出当前目录下的子目录,不列出文件ls -d */又如下面命令列出当前目录的权限位等信息,但不列出目录下的其他文件ls -ld显示不可打印的文件名(用八进制)ls -b按时间顺序列出文件名,最近修改过的列在前面ls -t...
ls的问题
root登录,在/etc下 用ls sys*,看不到sysconfig,然后用ls -l sys*还是没有(其他目录都看的到)。rn然后用ls -ld sysconf*,可以看到列表中有sysconfig了。rn请解释一下?rnthanks!
ls和通配符
linux入门知识精讲视频教程:本课程内容包括linux基础入门,包含网络基础、linux安装、基本操作、服务搭建、基本命令、软件管理、linux三剑客{grep,awk,sed}、iptable、rpm制作、lnmp{使用广的架构}rn本套课程包含许多工作中会遇到的问题及解决方案,解决大家工作当中遇到的问题。非常适合刚刚入门的同学来学习linux基础入门。
ls for windows
ls for windows,在windows下的ls,感觉良好
Linux命令之ls
Linux中列出目录下文件的命令,记录下我所常用的 ls -lrt #按时间逆序显示当前目录下的文件 ls -S #按照文件大小排序显示当前文件
ls 命令
ls 命令功能:显示目录列表或者单个文件的具体信息。 命令语法: ls 【选项】【目录或者文件】 选项; -a  显示所有文件,包含隐藏文件。 -A  显示除  .  和 .. 两个之外的所有文件。 -l   以长格式显示目录下文件列表或者单个文件,相当于文件的详细信息。包含文件、目录标识符,文件权限,硬连接数,文件所属用户、组,大小,最后修改时间,文件名。 -L  在显示链接文件时
ls命令详解
常用的ls命令选项,记录一下备忘,后续不断添加典型应用。   格式:ls [选项] [目录名] 功能:列出目标目录中所有的子目录和文件。 【选项说明】 -a 显示所有文件和子目录(包括.和..)。 -A 显示除了.和..之外的所有文件与子目录。 -d 只显示目录本身,而不是目录下的文件和子目录。 -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来。 -g ...
ls的匹配问题
一个目录下有:*.20031027.log和*.log两类文件,用ls怎么把它们区分开?
ls -@什么意思
-@ Display extended attribute keys and sizes in long (-l) output.rn就是la -l 输出的时候,可以输出扩张的属性key和sizes 这里的extended attribute keys and sizes 大概是指什么??rnzhengshhandembp:env1 zhengshanshan$ ls -@lrntotal 16rndrwxr-xr-x 3 zhengshanshan staff 102 9 23 09:44 ananzu_servicerndrwxr-xr-x 5 zhengshanshan staff 170 9 24 11:28 apirndrwxr-xr-x 5 zhengshanshan staff 170 9 24 23:29 touchwebrndrwxr-xr-x 5 zhengshanshan staff 170 9 24 23:24 touchweb-bakrnlrwxr-xr-x 1 zhengshanshan staff 8 9 24 11:15 touchweb-softlink -> touchwebrnlrwxr-xr-x 1 zhengshanshan staff 17 9 24 23:25 touchweb-softlink2 -> touchweb-softlinkrn[color=#008000]zhengshhandembp:env1 zhengshanshan$ ls -lrntotal 16rndrwxr-xr-x 3 zhengshanshan staff 102 9 23 09:44 ananzu_servicerndrwxr-xr-x 5 zhengshanshan staff 170 9 24 11:28 apirndrwxr-xr-x 5 zhengshanshan staff 170 9 24 23:29 touchwebrndrwxr-xr-x 5 zhengshanshan staff 170 9 24 23:24 touchweb-bakrnlrwxr-xr-x 1 zhengshanshan staff 8 9 24 11:15 touchweb-softlink -> touchwebrnlrwxr-xr-x 1 zhengshanshan staff 17 9 24 23:25 touchweb-softlink2 -> touchweb-softlink[/color]rn输出的结果是一致的呀 所以
ls显示
dir 0755 usr/lib/python2.6/vendor-packagesrnrnls 用什么参数能显示成这种格式呢?
LS或LS库,如何隐藏代码
我看有的代理,或者LS库里都有一个.lss的引用,然后没有实际代码,我想问下,我自己开发的代码,如何也做成隐藏的一个独立文件,怎么导出与导入啊?
LS KGW-WIN3.64
非常简单的编程方式,完美英文版,避免了3.62版不能输入密码的原因,PCL初学者的不二之选
linux命令之ls
用来查看当前目录的清单,如果ls指定其他目录,那么就会显示指定目录里的文件及文件夹清单 -d:查看目录 -a:显示隐藏文件 1、输出文件的详细信息 [root@cs70-moban data]# ls -l total 16 -rw-r--r--. 1 root root  0 Mar 27 10:46 1 -rw-r--r--. 1 root root  0 Mar 27  201
常用命令之 -- ls
ls 算是最常用最常用的命令了,所以熟悉使用ls还是很有必要的ls ,列表的意思(list) 使用格式 : 命令 选项 参数 参数可以为目录和文件,目录和文件都可以为多个选项:-l :显示完整信息drwxr-xr-x 2 root root 4096 Nov 4 10:50 admin -rw-r----- 1 root root 0 Nov 4 10:54 auto
linux命令:ls
linux命令:ls 当用户执行一条“ls”命令后,发生了什么? 步骤一:如果是以绝对/相对路径输入的命令则直接执行(如/bin/ls); 步骤二:检查是否为alias别名命令; 步骤三:由bash判断其是“内部命令”还是“外部命令”;     内部命令:属于解释器内部     外部命令:独立于解释器外的命令文件 步骤四:通过$PATH变量中的定义路径进行命令查找;
ls 的问题
ls |morern可在显示完一屏时停下来,然后每次回车上滚一行rnrnls 加什么参数可相当于dos下的dir/p,使之能每次回车上滚一屏?
Linux命令:ls
ls 1.作用 ls命令用于显示目录内容,类似DOS下的dir命令,它的使用权限是所有用户。 2.格式 ls [options][filename] 3.options主要参数 -a, --all:不隐藏任何以“.” 字符开始的项目。 -A, --almost-all:列出除了“ . ”及 “.. ”以外的任何项目。 --author:印出每个文件著作者。 -b, --escape:以八...