AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-40335

forthrin's questions

Martin Hope
forthrin
Asked: 2018-08-27 04:39:14 +0800 CST

回声中的perl命令中带有空格的文件名

  • 3

如何在以下命令中支持带空格的文件名?

echo "$(perl -MMIME::Base64 -e 'open F, shift; @lines=<F>; close F; print MIME::Base64::encode(join(q{}, @lines))' $filename)"

我尝试了以下似乎不起作用的方法:

  1. echo ... \"$filename\")
  2. echo '$(... "open..." "$filename")'
  3. echo $(...'open ... "$filename")
perl
  • 1 个回答
  • 202 Views
Martin Hope
forthrin
Asked: 2018-08-07 06:57:35 +0800 CST

每秒精确运行一次循环

  • 35

我正在运行这个循环来每秒检查和打印一些东西。然而,由于计算可能需要几百毫秒,打印时间有时会跳过一秒钟。

有什么办法可以编写这样一个循环,保证我每秒都能得到一个打印输出?(当然,前提是循环中的计算时间少于一秒 :))

while true; do
  TIME=$(date +%H:%M:%S)
  # some calculations which take a few hundred milliseconds
  FOO=...
  BAR=...
  printf '%s  %s  %s\n' $TIME $FOO $BAR
  sleep 1
done
bash timestamps
  • 6 个回答
  • 13592 Views
Martin Hope
forthrin
Asked: 2018-08-06 23:48:42 +0800 CST

按空格字符拆分字符串(basename 的奇怪问题)

  • 4

我需要将输出从ps分开,这是间隔分开的。

#!/bin/bash

A=$(ps -r -e -o pcpu=,comm= | head -1)
B=${A[0]}
C=${A[1]}
printf '%3s  %s\n' $B $(basename $C)

输出应该是:

 42 bar

相反,我得到:

usage: basename ...

为什么这不起作用,最重要的是,我如何使它起作用?

bash
  • 4 个回答
  • 4466 Views
Martin Hope
forthrin
Asked: 2018-06-08 23:34:45 +0800 CST

控制后台进程

  • 2

我正在寻找一种方法来开始播放音频文件(mp3、m4a)作为 shell 的后台任务,然后能够在稍后执行暂停/快进等操作。

这是否可能使用内置命令行选项:

$ play audio.mp3 &
$ play --pause

还是通过玩家的进程ID?

$ play audio.mp3 & echo $! > pid
$ control_process $(cat pid) --signal pause

(示例仅供说明。)

process background-process
  • 4 个回答
  • 586 Views
Martin Hope
forthrin
Asked: 2018-05-19 04:43:34 +0800 CST

如何保留等。人。在邮件中(x)

  • 1

retain [email protected]在命令行中输入个人偏好时mail,如何保存这些,以便下次启动时重新加载mail?

mailx mail-command
  • 1 个回答
  • 43 Views
Martin Hope
forthrin
Asked: 2018-04-12 03:20:44 +0800 CST

将存档解压缩到单个文件夹

  • 4

也许这是第一世界问题的顶峰,但经过多年的焦虑,我只需要播出这一点。

假设您已下载funtool.zip到您的~/Downloads文件夹中。您有两种选择,每种都有两种可能的结果,具体取决于存档是否具有正确的根文件夹。

unzip funtool. 可能的结果:

  • ~/Downloads/funtool/(files)- 好的
  • ~/Downloads/(lots of files)——啊!下载文件夹乱七八糟

unzip funtool -d funtool. 可能的结果:

  • ~/Downloads/funtool/funtool/(files)-- 双文件夹。恼人的!
  • ~/Downloads/funtool/(files)- 好的

我已经看到一些 GUI 解压缩器为此内置了智能,但我是 CLI 专家。我的解决方案是检查根文件夹unzip -t funtool并采取相应措施。但多年后,我已经拥有了。

是否有脚本或其他东西可以自动执行此操作,甚至对于rar文件,甚至可能7z?至少这是一件tar似乎每次都正确的事情,也许是因为良好的惯例。

zip archive
  • 3 个回答
  • 74 Views
Martin Hope
forthrin
Asked: 2018-04-06 10:56:24 +0800 CST

无损将 JPEG 裁剪为整个 8x8 块

  • 1

由于 JPEG 图像以 8x8 像素的块压缩,如果 JPEG 的宽度或高度不能被 8 整除,在技术上是否可以无损地去除外边缘的 1-7 像素?

(或者,只要内部 8x8 块完好无损,就可以裁剪任何尺寸的外边缘。)

images image-manipulation
  • 2 个回答
  • 344 Views
Martin Hope
forthrin
Asked: 2018-04-06 09:07:08 +0800 CST

将制表符分隔的字段转换为变量的紧凑方法

  • 2

在 Bash 中,我将一行中的字段读入数组。让我强调一下性能是一个问题,所以我买不起任何产生子进程的东西。

为了使代码更具可读性,我希望将字段转换为变量:$width比${array[0]}. 我必须手动设置每个变量,就像这样,这是很多重复:

while read line; do

  array=($line)
  width=${array[0]}
  height=${array[1]}
  size=${array[2]}
  date=${array[3]}
  time=${array[4]}

  # use $width, $height, etc. in script

done < file

是否有任何紧凑的方法可以做到这一点,比如listPHP 中的指令?

list($width, $height, $size, $date, $time) = $array;
bash csv
  • 1 个回答
  • 3474 Views
Martin Hope
forthrin
Asked: 2018-04-03 04:27:45 +0800 CST

用 shell perl 替换 UTF-8 字符

  • 6

如何perl从 shell 中正确替换 UTF-8 字符?

这些示例使用标准输入,但我也需要一些适用的东西perl ... file。

这是我所期望的:

$ echo ABCæøåDEF | perl -CS -pe "s/([æøå])/[\\1]/g"
ABC[æ][ø][å]DEF

这就是我得到的:

$ echo ABCæøåDEF | perl -CS -pe "s/([æøå])/[\\1]/g"
ABCæøåDEF

用 ASCII 替换 Unicode 字符可以立即生效:

$ echo ABC123DEF | perl -CS -pe "s/([123])/[\\1]/g"
ABC[1][2][3]DEF

我的环境:

perl 5.18.2
Bash 3.2.57
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
perl unicode
  • 3 个回答
  • 1923 Views
Martin Hope
forthrin
Asked: 2018-03-30 10:28:02 +0800 CST

递归目录中的快速字符串替换

  • 0

如何使用带有空格和单引号的递归目录和文件名进行快速文本替换?最好使用标准 UNIX 工具,或者使用众所周知的软件包。

使用find对于许多文件来说非常慢,因为它为每个文件生成一个新进程,所以我正在寻找一种将目录遍历和字符串替换集成为一个操作的方法。

慢搜索:

find . -name '*.txt'  -exec grep foo {} \;

快速搜索:

grep -lr --include=*.txt foo

慢换:

find . -name '*.txt' -exec perl -i -pe 's/foo/bar/' {} \;

快速更换:

# Your suggestion here

(这个相当快,但是是两次通过并且不处理空格。)

perl -p -i -e 's/foo/bar/g' `grep -lr --include=*.txt foo`
replace recursive
  • 3 个回答
  • 1576 Views
Martin Hope
forthrin
Asked: 2018-03-20 05:38:06 +0800 CST

如何防止管道流入脚本中的子外壳

  • 1

我正在将行导入 PHP 脚本(请参见下面的人为示例)。唉,管道无意中流入脚本中的 shell 命令,因此 nano 无法运行,因为它在 STDIN 上阻塞。

我希望 shell 命令运行与通过管道传输到主脚本的 STDIN 完全无关。所以 PHP 脚本应该以某种方式“吃掉”STDIN,所以它不会到达子 shell。我该如何解决?

请注意exec(),system()和passthru()都给出相同的结果。

$ echo -e "World\nEverybody" | php script.php
Hello World
Received SIGHUP or SIGTERM
Hello Everybody
Received SIGHUP or SIGTERM

脚本.php:

<?php

foreach(file("php://stdin") as $name) {
  echo "Hello $name";
  passthru("nano");
}

?>

环境:

  • PHP 7.1.14 / PHP 5.6.30
  • GNU bash,版本 3.2.57
shell pipe
  • 1 个回答
  • 307 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve