假设当我执行 ls 命令时,输出是:
file1 file2 file3 file4
Run Code Online (Sandbox Code Playgroud)
是否可以只显示特定的输出列,在这种情况下是 file2?我尝试了以下方法但没有成功:
echo ls | $2
Run Code Online (Sandbox Code Playgroud)
基本上我只想回显第二列,在这种情况下,我想回显:
file2
Run Code Online (Sandbox Code Playgroud) 假设我只是创建目录 newDirectory 然后我执行 ls -ld 命令。我看到硬链接的数量是2。从一开始,硬链接2到底是什么?当前目录中的子目录数是否等于硬链接数 - 2?
这可能吗?我在某处读到以下命令可以做到:
sed -e [命令] [文件]
但它似乎做同样的事情
sed [命令] [文件]
(它没有保存更改)。有没有办法使用sed来做到这一点?
这三个命令有什么区别?
echo `date`
echo "`date`"
echo '`date`'
Run Code Online (Sandbox Code Playgroud)
我对实际的差异感到困惑。我认为当 ' 在它周围时意味着它是一个字符串,因此 echo 会从字面上输出字符串date而不是显示日期?
所以我必须解压缩 4 个不同的文件。当我做
file file1
file file2
file file3
file file4
Run Code Online (Sandbox Code Playgroud)
例如,显示不同的消息。例如一个开始像"gzip compressed data, …,另一个开始像RAR archive data, v1d, os: Unix…,另一个开始像compress'd data 16 bits…
我不太确定如何区分不同的解压缩命令。我会为每个使用哪一个?
对于那些谁问,文件名实际上file1,file2等他们有没有可见的扩展。
我知道如何使用 sed 一步一步地编辑文件,但是我将如何创建一个实际的 sed 脚本,然后在文件上使用它来执行单个 sed 命令会执行的相同操作?例如这 3 个 sed 命令:
sed -i '4i\' 培根文件
sed -i 's/,/\t\t/' 培根文件
sed -i 's/,//' 培根文件
我在这样做时遇到了一些麻烦。我需要运行一个已编译的 .java 文件并仅将 stderr 重定向到一个名为 error 的文件。所以.java 文件被命名为javaProgram.java。
这是我尝试过的:
java javaProgram 2> error
Run Code Online (Sandbox Code Playgroud)
然而当我
cat error
Run Code Online (Sandbox Code Playgroud)
似乎那里有东西,即使我知道特定的 .java 文件没有错误的事实。难道我做错了什么?我希望这个错误文件显示的是错误,而不是其他任何东西。
name=Jackson
echo $name
Run Code Online (Sandbox Code Playgroud)
这将显示杰克逊。
name="Jackson"
echo $name
Run Code Online (Sandbox Code Playgroud)
这也将显示杰克逊。
所以我假设通过在变量周围加上引号,它使它成为一个字符串。从技术上讲,name=Jackson 是什么?它也会被识别为字符串吗?
我应该找到并显示包含单词胡萝卜的文件数(忽略大小写)
到目前为止,这就是我所拥有的,我只是不确定如何将 wc 添加到其中以计算有多少文件带有胡萝卜一词
找 。-exec grep -i胡萝卜{} \;
所以我环顾四周,我发现只有在目录已经创建的情况下才能做到这一点,这是这样的:
find source -name '*.z' -exec cp {} destination \;
Run Code Online (Sandbox Code Playgroud)
但是如何创建一个新目录,以便在同一命令中发送这些文件?这是我尝试过但没有成功的方法:
find source -name '*.z' -exec cp {} | mkdir newDirectory \;
Run Code Online (Sandbox Code Playgroud) 我将如何创建一个用户可以用来对任意数量的命令行参数求和的 bash 脚本?例如,假设我的脚本名为 sum:
sum 3
Run Code Online (Sandbox Code Playgroud)
3
sum 3 5
Run Code Online (Sandbox Code Playgroud)
8
sum 9 8 21
Run Code Online (Sandbox Code Playgroud)
38
依此类推..我意识到我将不得不遍历命令行参数并将它们增加到总数,但我不确定如何做到这一点。我不确定如何将第二个命令行参数引用到特定变量或如何获取总命令行参数的数量。
我需要在文本文件中格式化电话号码。它们显示为(示例)8014516912
我将如何格式化它以便我可以-在前 3 个数字之后插入一个,然后-在另外 3 个数字之后插入一个,所以它会显示为801-451-6912
我将如何对包含电话号码的所有行执行此操作?请记住,电话号码位于文本之间,因此这些号码并不总是位于同一索引处。例如它可以是这样的:
atewfnwieug 8204919561
adw 8915617141
Run Code Online (Sandbox Code Playgroud) 在这种情况下,只读意味着什么或做什么?我从未见过或听说过。
a="testString"; b=a; readonly b; b=25;
Run Code Online (Sandbox Code Playgroud)
另外,最后 b 的最终值是 25 吗?
bash ×9
command-line ×4
sed ×3
directory ×2
ls ×2
shell ×2
arguments ×1
arithmetic ×1
compiling ×1
compression ×1
echo ×1
find ×1
parameter ×1
quoting ×1
shell-script ×1
variable ×1
zip ×1