基本上在 Bash 中,我想要做的是从用户那里输入几秒钟并找到小时数。所以基本上如果用户输入 35,输出应该是 0.00972222。
但是 bash 给我的是零。
这是我的命令:
echo "Enter the seconds you wish to convert to hours: " && read sec && echo " $((sec/3600)) is the amount of hours "
Run Code Online (Sandbox Code Playgroud)
有没有办法让它在我输入 35 时打印出 0.00972222。
谢谢!
我需要编写一个程序,从文件中读取行并将行stdin
写入stdout
行号。我无法使用cat -n
.
假设文本文件有这个:
abcdef
ghi
klm
nopqr st
Run Code Online (Sandbox Code Playgroud)
它应该基本上读取这些行并输出这些行,但带有行号。
这是我的 while 读取循环,但它不会打印出每一行。
while read line
do
awk '{print NR, $0}'
done < file
Run Code Online (Sandbox Code Playgroud)
基本上这个输出是这样的:
1 ghi
2
3 klm
4 nopqr st
Run Code Online (Sandbox Code Playgroud)
出于某种原因,abcdef
没有出现,数字 2 不应该是空白的。
我想知道是否有一种更简单的方法来交换每行的前两个单词。
假设我的文本文件由以下三行组成:
Mary Joe
William Edward
Shawn Liam
Run Code Online (Sandbox Code Playgroud)
最终我想要这个:
Joe Mary
Edward William
Liam Shawn
Run Code Online (Sandbox Code Playgroud)
我知道这可以通过 sed 命令来完成:
sed -e "s/\([^ ]*\) *\([^ ]*\)/\2 \1 /g" file
Run Code Online (Sandbox Code Playgroud)
但要记住的太多了。
有没有更简单的方法来做到这一点。
这是 bash 顺便说一句。
我需要更改替换文件中的文本并使用更改后的文本输出整个文本文件并将其打印到屏幕上。
这是我得到的:
sed 's/123/456/g' number > number123
Run Code Online (Sandbox Code Playgroud)
这会将文本和输出更改为新文件,但不会打印到终端。
我如何获得它,以便在该命令中将更改后的文本文件打印到终端。
任何帮助表示赞赏。
我想知道如何在文本编辑器中创建 shell 脚本。
所以这就是我在文本编辑器中的内容。
#!/bin/bash
mkdir -p temp
cd temp
if [ $1 > $2 ] ;
then
echo $1
else
echo $2
fi
./max.sh 4 6
./max.sh -2 -5
./max.sh 7 -3
Run Code Online (Sandbox Code Playgroud)
所以基本上在文本编辑器中,我想创建一个名为 max.sh 的 shell 脚本,以便在它下面我可以通过它但在同一个文本编辑器中传递参数。
为了更清楚地说明:
我希望 if 语句位于名为 max.sh 的脚本中,因此在它下面我可以使用参数调用 max.sh 并且它会起作用。
所以基本上我有三个文件,两个具有 744 权限,一个具有 601 权限,我想列出具有权限 744 的文件的名称,此外,它还必须在文件行中的任何位置都有字符串“def”。
如果他们有权限 744,我得到的只是如何打印出来:
find * -perm 744
Run Code Online (Sandbox Code Playgroud)
我如何获得它以便它可以检查字符串“def”?
任何帮助表示赞赏。