这是我的文本文件:
0019121002313002316003135
0057936000814000814003023
0081638001519001523001176
0090531001841001842002633
0111210001515001518000912
0115400001807001828001593
Run Code Online (Sandbox Code Playgroud)
我希望处理后的输出为:
0019121,002313,002316,003135
0057936,000814,000814,003023
0081638,001519,001523,001176
0090531,001841,001842,002633
0111210,001515,001518,000912
0115400,001807,001828,001593
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?
这是我的输入文件
0164318,001449,001452,001922
0164318,001456,001457,001922
0842179,002115,002118,001485
0846354,001512,001513,001590
0841422,001221,001224,001860
0841422,001227,001228,001860
Run Code Online (Sandbox Code Playgroud)
我想要我的结果
0164318,001449,001457,001922
0842179,002115,002118,001485
0846354,001512,001513,001590
0841422,001221,001228,001860
Run Code Online (Sandbox Code Playgroud)
使用 col1 分组并
通过 shell 脚本查找 min(col2) 和 max(col3) 。
我在 Windows 10 上使用以下版本的 bash:
GNU bash,版本 4.4.23(1)-release (x86_64-pc-msys)
我从在 Linux 上运行它的人那里收到了一个脚本。在 Windows 上运行时,我得到了不同的结果。
脚本是test.sh:
#!/bin/bash
set -x
( . settings.sh ; . constants.js ) > output.js
Run Code Online (Sandbox Code Playgroud)
settings.sh:
TEST_URL="https://myurl.com"
Run Code Online (Sandbox Code Playgroud)
constants.js:
cat << EOF
export class Output {
}
Constants.Url = "$TEST_URL";
EOF
Run Code Online (Sandbox Code Playgroud)
output.js 在 Linux 上如下所示:
export class Output {
}
Constants.Url = "https://myurl.com";
Run Code Online (Sandbox Code Playgroud)
该脚本未在 Windows 上运行。我将其修改为:
#!/bin/bash
set -x
( ./settings.sh ; ./constants.js ) > output.js
Run Code Online (Sandbox Code Playgroud)
在 Windows 上:
export class Output {
}
Constants.Url …Run Code Online (Sandbox Code Playgroud) 我需要帮助解决关于配置文件中的注释的讨论。这是关于“什么决定在任何给定程序中使用哪个字符/字符串进行注释的问题?”
理论 A) 指出,这由程序开发人员自行决定。尽管在类 Unix 操作系统下的程序中普遍使用 # 字符在配置文件中进行注释(例如:ssh 配置文件、/etc/fstab 等),但任何人都可以在新应用程序中指定在该应用程序使用的配置文件中,//、++ 或任何其他字符串构成注释的开头。
理论 B) 指出,上述使用 # 的广泛实践实际上是强制性的,因为配置文件类似于 Bash 脚本,因此 bash 脚本中有效的语法以某种方式(可能通过标准,或某些操作系统范围的指令),同样的语法也适用于任何程序的配置文件——这就是为什么 # 是大多数配置文件中的注释字符的原因。
理论 C) 指出,一些完全不同的因素决定了在配置文件中使用哪个字符串进行注释(请指定)。
在下面似乎点理论中的一个):
存在许多不同的配置文件格式,每个应用程序或服务可能具有独特的格式。
,但这不是明确的答案。感谢您的任何提示,也将不胜感激!
我被告知以下两个关于以 sudo 身份运行脚本的声明:
我没有理由怀疑我被告知的内容,但是我有以下设置有效,我想知道为什么,如果上述两个陈述是正确的。
我有以下脚本:
/var/www/bash_scripts/test/set_permissions.sh
该脚本包含以下内容:
chown -R jason:www-data /var/www/test.site.com
find /var/www/test.site.com -type f -exec chmod 664 {} \;
find /var/www/test.site.com -type d -exec chmod 775 {} \;
Run Code Online (Sandbox Code Playgroud)
这个脚本的权限是:
-rwxrwxr-- 1 root root 200 Nov 21 22:49 set_permissions.sh
我的/etc/sudoers文件包含附加到底部的以下行:
www-data ALL=(ALL) NOPASSWD: /var/www/bash_scripts/test/set_permissions.sh
当脚本通过以 user 身份运行的 php 进程执行时www-data,脚本按预期执行并执行其中的所有命令。
如果上面的语句 1. 是正确的,则脚本不应执行,因为它只能通过 root 用户执行。如果上面的语句 2. 是正确的,脚本中的命令将无法执行。
我只是想澄清一下这两个陈述是否正确,如果正确,我做了什么允许我上面描述的行为?
编辑
www-data 拥有 /var/www/test.site.com
php 代码通过以下方式运行命令:
exec('sudo /var/www/bash_scripts/site/test/set_permissions.sh 2>&1')
我正在浏览一个示例 sshd 配置文件,我发现一行说
AuthorizedKeysFile /etc/ssh/%u.authorized_keys
Run Code Online (Sandbox Code Playgroud)
我想知道 %u 在这里是什么意思?它正在寻找一个名为 - www-user.authorized_keys 的文件,%u 应该根据我提供的登录 ID 扩展为 www-user。只有当我有一个像 /home/%u/authorized_keys 这样的文件夹时,它才会扩展到 www-user,然后它扩展到 /home/www-user/authorized_keys。但是,如果我给 /home/%u/%u.authorized_keys。文件名未扩展为 www-user.authorized_keys。这是 openssh 中的已知问题或错误吗?它曾经适用于 openssh 6.x 版,但似乎不适用于 7.x 版。我错过了什么吗?
我有这个脚本,
#!/bin/sh
guess=$(echo $RANDOM | cut -b 1-2)
read -p "Im thinking of a number, can you guess what it is? " number
case "$number" in
"$guess") echo "\nCongratulation number guessed corectly!"
exit 0
;;
*) echo "\nIncorrect number guessed, try again? [yes or no]"
read yesorno
case "$yesorno" in
"yes") sh guess.sh
;;
"no") echo "\nHave a nice day!"
exit 0
;;
*) echo "Invalid input"
exit 1
;;
esac
;;
esac
Run Code Online (Sandbox Code Playgroud)
变量 $guess 应该返回一个 2 位数字,但返回 null。运行游戏sh …
我正在检查文件是否存在find如下命令 -
find ${pwd} | grep 'Test.*zip'
Run Code Online (Sandbox Code Playgroud)
此命令返回具有相对路径的输出,例如 -
./ReleaseKit/Installable/Test-5.2.0.11.zip
Run Code Online (Sandbox Code Playgroud)
有没有办法使用find命令获取找到的文件的绝对路径?
考虑以下函数:
function testForBinary {
someBin=$(command -v binary)
# Test if binary is installed
if [[ -n $someBin ]]; then
installSuccess="Success"
echo ${installSuccess}
return
else
# This should never be reached
return 1
fi
}
Run Code Online (Sandbox Code Playgroud)
取自(上下文):
function installAndTestForDialog() {
# dialog allows me to create a pretty installer
# It is a required dependency since XXXXX
# Name Removed as I'm attempting modularization
# of a script from Github that's one huge Script
# See https://unix.stackexchange.com/questions/85249/why-not-use-which-what-to-use-then
local dialogBin …Run Code Online (Sandbox Code Playgroud) shell-script ×10
bash ×2
command-line ×1
conventions ×1
linux ×1
permissions ×1
scripting ×1
shell ×1
sql ×1
sshd ×1
sudo ×1