标签: ksh

让Find只打印文件名,而不是完整路径

我在ksh脚本中使用find命令,我试图只检索文件名,而不是完整路径.在,我希望它返回text.exe,而不是//severname/dir1/dir2/text.exe.

我该怎么做呢?为了澄清,我知道文件所在的目录,我只是抓住了beetoe date的创建者,所以路径名无所谓.

shell ksh

30
推荐指数
5
解决办法
4万
查看次数

如何在unix中每行的末尾添加文本

我正在进行某些文本处理操作,最终能够获得这样的文件

india
sudan
japan
france
Run Code Online (Sandbox Code Playgroud)

现在我想在上面的文件中添加注释,就像在最终文件中它应该是类似的

india | COUNTRY
sudan | COUNTRY
japan | COUNTRY
france | COUNTRY
Run Code Online (Sandbox Code Playgroud)

像整个文件中的相同评论.我该怎么做呢?

unix shell awk ksh

30
推荐指数
2
解决办法
7万
查看次数

如何递归列出某个位置的所有目录,广度优先?

广度优先列表在这里很重要.此外,限制搜索的深度将是很好的.

$ find . -type d
/foo
/foo/subfoo
/foo/subfoo/subsub
/foo/subfoo/subsub/subsubsub
/bar
/bar/subbar

$ find . -type d -depth
/foo/subfoo/subsub/subsubsub
/foo/subfoo/subsub
/foo/subfoo
/foo
/bar/subbar
/bar

$ < what goes here? >
/foo
/bar
/foo/subfoo
/bar/subbar
/foo/subfoo/subsub
/foo/subfoo/subsub/subsubsub
Run Code Online (Sandbox Code Playgroud)

如果可能的话,我想使用bash one-liner进行此操作.如果有一个javascript-shell,我会想象类似的东西

bash("find . -type d").sort( function (x) x.findall(/\//g).length; )
Run Code Online (Sandbox Code Playgroud)

linux bash shell ksh

29
推荐指数
5
解决办法
7万
查看次数

单个命令用于创建文件并设置其权限

我使用以下2个命令创建一个0B文件并将其extn设置为644

touch filename.ext
chmod 777 filename.txt
Run Code Online (Sandbox Code Playgroud)

我的问题是unix(korn shell)中是否有任何一个命令可以将这两个东西放在一起,也就是说创建一个具有所需权限的0B fil?

unix shell ksh file-permissions

28
推荐指数
6
解决办法
3万
查看次数

使用unix比较远程服务器上两个目录的内容

我是unix的新手,需要一些帮助.我在两个不同的服务器上有两个目录.两个目录都包含相同的文件.现在我想检查两个目录中的所有文件是否同步.如果文件不同步,那么我只想显示这些文件的名称.当目录在同一台服务器上时,我能够做到这一点.当目录存在于两个不同的服务器上时,无法弄清楚如何执行此操作.

eg:
server1 /abc/home/sample1/
server2 /abc/home/sample2/
Run Code Online (Sandbox Code Playgroud)

这里我只希望文件名不同步时显示.

提前致谢

unix diff rsync ksh vimdiff

25
推荐指数
2
解决办法
5万
查看次数

将输入输入到脚本中

我在ksh中编写了一个shell脚本,将CSV文件转换为Spreadsheet XML文件.它需要一个现有的CSV文件(脚本中的变量路径),然后创建一个新的输出文件.xls.该脚本没有位置参数.CSV的文件名当前已硬编码到脚本中.

我想修改脚本,以便它可以从管道中获取输入的CSV数据,这样.xls输出数据也可以通过管道传输或重定向(>)到命令行上的文件.

这是如何实现的?

我正在努力寻找有关如何编写shell脚本以从管道获取输入的文档.似乎'read'仅用于来自kb的std输入.

谢谢.

编辑:下面的脚本信息(现在修改为通过猫从管道输入,根据问题的答案.

#!/bin/ksh
#Script to convert a .csv data to "Spreadsheet ML" XML format - the XML scheme for Excel 2003
#
#   Take CSV data as standard input
#   Out XLS data as standard output
#

DATE=`date +%Y%m%d`

#define tmp files
INPUT=tmp.csv
IN_FILE=in_file.csv

#take standard input and save as $INPUT (tmp.csv)
cat > $INPUT

#clean input data and save as $IN_FILE (in_file.csv)
grep '.' $INPUT | sed 's/ *,/,/g' | sed 's/, */,/g' > …
Run Code Online (Sandbox Code Playgroud)

unix shell ksh pipe

24
推荐指数
3
解决办法
5万
查看次数

Shell脚本模板

对于一个好的bash/ksh脚本模板,你有什么建议可以用作所有新创建的脚本的标准?

我通常#!使用带有文件名,概要,用法,返回值,作者,更改日志的注释掉头开始(在行之后)并且适合80-char行.

所有文档行我都以双哈希符号开头,##因此我可以轻松地为它们grep,本地var名称前面加上"__".

还有其他最佳做法吗?提示?命名约定?返回代码怎么样?

关于版本控制的评论:我们使用SVN可以,但企业中的另一个部门有一个单独的repo,这是他们的脚本.如果没有@author信息,我如何知道与Q联系的人?使用类似于javadocs的条目即使在shell上下文中也有一些优点,恕我直言,但我可能错了.

unix bash scripting standards ksh

23
推荐指数
6
解决办法
4万
查看次数

将命令输出重定向到ksh中的变量和标准输出

我有一些shell命令.我想将输出写入标准输出并将其保存到变量中.我想用一个命令来解决它.我试过这些东西.

ls > $VAR          # redirects the output to file which name is stored in $VAR
ls | tee -a $VAR   # writes to standard output as well as in file which name is stored in $VAR
VAR=`ls`           # output into $VAR, but it is not sent to standard output
VAR=`ls`;echo $VAR # ok, it works but these are two commands
Run Code Online (Sandbox Code Playgroud)

任何的想法?

shell scripting ksh

23
推荐指数
1
解决办法
7万
查看次数

我可以在KornShell中获取当前脚本的绝对路径吗?

是否有可能找到当前在KornShell(ksh)中执行的脚本的完整路径?

即如果我的脚本在/opt/scripts/myscript.ksh,我可以编程在该脚本内发现/opt/scripts/myscript.ksh吗?

谢谢,

unix shell scripting ksh path

22
推荐指数
4
解决办法
4万
查看次数

如何在shell脚本中只读取一个字符

我想要像getche()C中的类似选项.如何从命令行只读取一个字符输入?

read我们可以使用命令吗?

linux io shell ksh

22
推荐指数
4
解决办法
2万
查看次数

标签 统计

ksh ×10

shell ×8

unix ×6

scripting ×3

bash ×2

linux ×2

awk ×1

diff ×1

file-permissions ×1

io ×1

path ×1

pipe ×1

rsync ×1

standards ×1

vimdiff ×1