【发布时间】:2012-10-10 22:06:29
【问题描述】:
如果文件名是这种格式
assignment_number_username_filename.extension
例如
assignment_01_ssaha_homework1.txt
我只需要提取用户名以在脚本的其余部分中使用它。
如何只使用用户名并将其用作参数。
这与我要找的很接近,但不完全是:
Extracting a string from a file name
如果有人能解释 sed 在这种情况下的工作原理,那将同样有帮助!
这是我目前所拥有的;我有一段时间没有使用cut,所以在尝试刷新自己时收到错误消息。
#!/bin/sh
a = $1
grep $a /home | cut -c 1,2,4,5 echo $a`
【问题讨论】:
-
我一直坚持尝试这部分代码的其余部分只是使用然后提取的用户名创建新目录并将包含这些用户名的文件移动到相关目录。你知道吗?关于如何使用 sed 命令的说明的好链接?
-
您只是想从字符串中提取第三个单词吗?查看
cut命令。 -
是的,这就是主要问题,我只需要稍后能够使用它来执行我在 Jeremy D. 下面的评论中描述的操作,它是否也可以删除扩展程序?
-
如果你想使用 cut:
username = $(echo $filename | cut -d'_' -f 3想不出更简单的了。 -d 用于将分隔符设置为“_”,-f 用于选择第 3 列 -
请注意,这是错误的:
a = $1-- 您不能在等号周围放置空格。这样做:a=$1。如果你放了空格,shell 将尝试执行带有参数=和$1的命令a。