我在UNIX中编写脚本,我必须检查字符串中的第一个字符是否为"/",如果是,则为branch.
例如,我有一个字符串:
/some/directory/file
Run Code Online (Sandbox Code Playgroud)
我希望这返回1,并且:
server@10.200.200.20:/some/directory/file
Run Code Online (Sandbox Code Playgroud)
返回0.
我有一个数据框,其中包含> 100列,每列均标有唯一字符串。第1列代表索引变量。我想用一个基本的UNIX命令提取索引列(列1)+一个特定的列串使用grep。
例如,如果我的数据框如下所示:
Index A B C...D E F
p1 1 7 4 2 5 6
p2 2 2 1 2 . 3
p3 3 3 1 5 6 1
Run Code Online (Sandbox Code Playgroud)
我想使用一些命令仅提取我将用指定的“ X”列grep,并同时显示第1列和第grepd 列。我知道我可以cut -f1 myfile在第一篇文章中使用,但需要grep每列的帮助。作为一个更具体的示例,如果我的grep短语是“ B”,我希望输出为:
Index B
p1 7
p2 2
p3 3
Run Code Online (Sandbox Code Playgroud)
我是UNIX的新手,在类似示例中找不到很多东西。任何帮助将非常感激!!
我需要"写一个脚本来将用户添加到你的系统中,其中用户的名字被赋予脚本作为参数n(在?中,教授的拼写错误)格式的文本文件
Last_Name First_Name Middle_Initial Group
Run Code Online (Sandbox Code Playgroud)
(其余说明FYI)您的脚本应创建最多8个字符的唯一用户名,并为用户生成随机密码.应根据用户所在的组为用户分配主目录.您可以假设用户属于Management("mgmt"),Employee("empl")或Temporary("temp"),并且他们各自的目录是在/ home中的这些组名下.例如,如果John Doe在"mgmt."中,并且他的用户名是jdoe1234,那么他的主目录应该在/ home/mgmt/jdoe1234中.锁定主目录,使得没有其他人拥有主目录的权限而不是用户自己.您的脚本应该生成一个名为users.txt的文件,其中包含以下列:
姓氏名字UID密码
可用于将用户名和密码分发给用户.
第一部分(不是斜体)让我感到困惑.如果我理解他的措辞正确,他希望我从单独的.txt文件中获取文本并将其用作我脚本的参数?有了这个想法
./file.sh arg1 arg2 arg3 arg4
Run Code Online (Sandbox Code Playgroud)
除了那些args将成为.txt文件中的前四个单词?比方说,如果.txt文件包含"Doe John A empl",那就像打字一样
./file.sh arg1 arg2 arg3 arg4
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止的尝试(我实际上尝试了其他的东西,但这就是我现在在屏幕上看到的,有点像我开始的那样):
#!/bin/bash
echo "$(cat file.txt)"
lname=$(echo $1|head -c 3)//to make username use first 3 letters of last name
fname=$(echo $2|head -c 1)//to make username use first letter of first name
mname=$3
group=$4
echo "$lname$fname$mname$group"
Run Code Online (Sandbox Code Playgroud)
截至目前,第一行以下的任何内容都没有做任何事情.我从文件内容中获取了命令行参数的第一行,我使用它,因为我认为它会让我使用.txt文件中的内容作为参数,但显然没有这样做.它只是输出它的内容,而不是让我使用每个单词作为参数.不知道该怎么办.有帮助吗?我认为这不会非常困难,因为我开始编写脚本,假设用户提供了参数,但我重读了说明的第一部分,并假设他希望从单独的.txt文件中获取它们.
为了使我的代码可移植,我尝试使用printf而不是echo.但是之后
printf "-dogs-cats"
Run Code Online (Sandbox Code Playgroud)
返回错误.本案的解决方法是:
printf "-";printf "dogs-cats"
Run Code Online (Sandbox Code Playgroud)
但是有一个通用的,可移植的命令(或一个选项printf),它将打印任意字符串作为文字/逐字,而不是尝试将字符串解释为格式?
我在BSD UNIX(在Mac上)工作,但我的目标是在其他UNIX风格中也可以使用的代码.