Questions tagged «command-line»

有关使用命令行界面(CLI)的问题。



2
变量不解析为字符串
问题 我尝试以以下方式在bash脚本中提取wifi的信号电平(引号似乎没有什么区别): string="$(iwconfig wlan0 | grep -I Signal)" 如果我echo $string获得了我所期望的: Link Quality=63/70 Signal level=-47dBm 但是,如果我尝试获取子字符串echo ${string:5},它将返回相同的内容。 调试: 如果我将输出wconfig wlan0 | grep -I Signal直接粘贴到变量中:string="Link Quality=63/70 Signal level=-47dBm"则一切都会按预期进行。 echo $string # Link Quality=63/70 Signal level=-47dBm echo ${string:5} # Quality=63/70 Signal level=-47dBm 问题:根据互联网,所有bash变量都存储为字符串。因此,调试结果应该与我原来的问题相同。是否有某些原因在原始问题中未将其解析为文本?

3
如果不存在.txt文件,则无法在外壳中使用* .txt进行扩展
我在玩扩展,发现一个奇怪的行为。我试着做: echo ./*.txt 而且我的当前目录中没有任何.txt文件。我得到的输出是: ./*.txt 我很好奇:我为什么得到这个?我期望没有任何输出。 PS:当我确实有一个.txt文件时,正确地解释了扩展。换句话说,说我有一个文件,smthn.txt回声实际上回声了current_directory/smthn.txt。

6
如何从时间戳中删除第一个冒号':'?
我是编程新手!! 任何人都可以帮助删除:时间戳记中的第一个位置::29.06.2019 23:03:17 目前,我正在尝试使用awk / cut命令执行此操作,如下所示: TDS="$(grep 'Logfile started' process.log | awk '{print $3,$4}' | cut -d: -f2)" echo "$TDS" 29.06.2019 23 输出不是我想要的!我想将其打印为29.06.2019 23:03:17。

2
我可以配置bash / readline自动将NBSP转换为正常空间吗?
我正在使用芬兰语键盘布局,该布局将AltGr+ 映射Space到不间断的空间(NBSP,U + 00A0)。总的来说,我对此感到满意,但是我发现在使用bash命令行时,我经常不小心在管道|符号“(用AltGr+ <用芬兰语键盘布局用+ 编写)” 之后写NBSP而不是普通空格。我猜这是由于我需要AltGr在输入管道时按住并在碰到空间之前将其释放而造成的。当我发布的时机不好时,AltGr我会在命令行中看到不正确的错字和错误消息,例如 grep: command not found 看起来很像 grep: command not found 这使得这个问题很难在第一时间注意到。 我知道我可以禁用NBSP,但是我更喜欢仅在管道字符之后禁用它(具有AltGr+ Space以产生常规空间),或者如果不可能,则始终在bash命令行或readline级别上禁用它。有什么简单的方法可以执行此操作而无需修改 bash的源代码readline或我的终端仿真器(gnome-terminal)? 另一个好的解决方案是将NBSP配置为在命令行上可见,例如,将其替换␣为仅用于呈现的另一个字符(例如U + 2423 )。



2
引用文件名是否足以运行`xargs sudo rm -rf`?
我编写了一个脚本,该脚本删除了文件夹中除最后两个文件以外的所有文件: #!/bin/bash ls -1 --quoting-style=shell-always /path/to/some/folder \ | head -n -2 \ | xargs printf -- "'/path/to/some/folder/%s'\n" \ | xargs sudo rm -rf 该脚本将每天作为cron作业执行。 理由如下: 使用获取所有文件的列表ls -1(这样我每行得到一个文件); 使用head -n -2; 从列表中删除最后两个。 由于ls打印相对路径,因此请使用xargs printf事物在文件夹路径之前加上前缀,并使其成为绝对路径; 将其发送给sudo rm -rf使用xargs。 每个人都可以访问此文件夹,因此任何人都可以创建和删除此文件夹中的任何文件。 问题是: sudo rm -rf很恐怖。xargs sudo rm -rf非常可怕。 我想确保没有人会通过创建聪明的文件来删除(意外或故意删除)而损坏其他文件夹/系统。我不知道,像这样的聪明东西: file with / spaces.txt 这可能会导致超级恐怖sudo …

2
复制并粘贴一堆名称不同的文件
我有一堆名字叫文本的文件 foo_bar_abc_1_01_geh_original.in foo_bar_abc_1_02_geh_original.in foo_bar_abc_1_03_geh_original.in ... ... foo_bar_abc_1_1000_geh_original.in 我想复制(并保留原始文件)每个文件,然后粘贴到不同的名称(在同一文件夹中),例如 foo_bar_abc_1_01_geh_copy.in foo_bar_abc_1_02_geh_copy.in foo_bar_abc_1_03_geh_copy.in ... ... foo_bar_abc_1_1000_geh_copy.in 如何使用简单的脚本执行此操作?


2
重命名文件时避免替换空格
我正在尝试重命名这样的文件: for file in *; do mv -i "$file" "$(echo "$file" | sed -e 's/[^A-Za-z0-9._-]/_/g')"; done 但是该sed命令将所有空格替换为_。 如何编辑sed命令以使其包含空格和指定的字符?我试过使用,\s但不起作用... 编辑: 例如:文件trip: hill,应重命名:trip_ hill,但是上面的命令使它成为trip__hill。

5
用单词作为定界符剪切命令
是否有基于单词的剪切命令,例如: 171212 16082784 6264 XXX xxxxxxxx Transaction XXXXX abend ABCD. The task has terminated abnormally because of a program check. 16:08:27 我希望输出为: 171212 16082784 6264 XXX xxxxxxxx Transaction XXXXX abend ABCD. 如何处理?

3
如何创建使用关键字和过滤内容的CLI Web Spider?
我想在已弃用的(过时的)文学论坛e-bane.net中找到我的文章。一些论坛模块被禁用,我无法获得其作者的文章列表。此外,搜索引擎未将该网站索引为Google,Yndex等。 查找我所有文章的唯一方法是打开网站的存档页面(图1)。然后,我必须选择特定的年份和月份-例如2013年1月(图1)。然后,我必须检查每篇文章(图2),开头是否写了我的昵称-pa4080(图3)。但是有几千篇文章。 我读过以下主题,但没有一种解决方案适合我的需求: 适用于Ubuntu的网络蜘蛛 如何在Linux系统上编写Web Spider 获取网站的网址列表 我将发布自己的解决方案。但是对我来说有趣的是: 还有没有更优雅的方式来解决此任务?


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.