24小时热门版块排行榜    

查看: 954  |  回复: 5

hpfamily1988

木虫 (著名写手)

[求助] 请教shell命令 已有1人参与

下面的命令是什么意思?
ls vol_*/str_relax.out 2> /dev/null | sed 's+/str_relax.out++g' > vollist.out
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

匿名

用户注销 (正式写手)

本帖仅楼主可见
2楼2016-01-17 20:51:38
已阅   申请1ST强帖   回复此楼   编辑   查看我的主页

hpfamily1988

木虫 (著名写手)

引用回帖:
2楼: Originally posted by wangwy13 at 2016-01-17 20:51:38
假定当前文件夹已经在atat软件里的fitfc或者fitsvsl命令下生成了一系列vol*子文件夹。上述命令将在其中找到包含有str_relax.out的子文件夹,并将其记录到vollist文件中。
最后vollist应该有类似于以下的内容
vol_1
...

大概知道是什么意思 能不能解释一下各命令的意义 我没查出来 虽然不重要 只是想知道
还有应助回答才能评分。
3楼2016-01-17 22:31:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hpfamily1988

木虫 (著名写手)

送红花一朵
4楼2016-01-17 22:31:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

neweroica

木虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
hpfamily1988: 金币+10, ★★★★★最佳答案, 很清楚,多谢! 2016-01-18 12:00:19
ls vol_*/str_relax.out
列出vol_开头的所有目录下的所有的str_relax.out 文件

2> /dev/null
如果前面的命令中有错误输出,则不比显示到屏幕上(2代表标准错误输出stderr,导入/dev/null 表示不输出到屏幕)

| sed 's+/str_relax.out++g' > vollist.out
将前面命令的输出结果用pipe导到sed处理。引号''里是sed的指令:s+字符串1+字符串2+g,表示将匹配的字符串1(可以是正则表达式)替换为字符串2,末尾的g表示global,即如果字符串1出现多次,全部都替换为字符串2。不给g则只替换第一次出现的字符串1。具体到sed 's+/str_relax.out++g' ,就是把所有/str_relax.out字符串替换为空字符,即删除所有的str_relax.out字符。所以最后结果如2楼所说的那样。

» 本帖已获得的红花(最新10朵)

Simpler, stronger, more tolerant
5楼2016-01-18 08:45:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hpfamily1988

木虫 (著名写手)

送红花一朵
引用回帖:
5楼: Originally posted by neweroica at 2016-01-18 08:45:13
ls vol_*/str_relax.out
列出vol_开头的所有目录下的所有的str_relax.out 文件

2> /dev/null
如果前面的命令中有错误输出,则不比显示到屏幕上(2代表标准错误输出stderr,导入/dev/null 表示不输出到屏幕 ...

6楼2016-01-18 12:00:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 hpfamily1988 的主题更新
信息提示
请填处理意见