相关疑难解决方法(0)

在bash中重复打印一个角色

有没有办法在bash中重复打印相同的字符,就像你可以使用这个结构在python中这样做:

print('%' * 3)
Run Code Online (Sandbox Code Playgroud)

%%%
Run Code Online (Sandbox Code Playgroud)

bash shell

48
推荐指数
5
解决办法
6万
查看次数

在shell脚本中创建重复字符串

我需要生成一串点(.字符)作为变量.

即,在我的Bash脚本中,输入15我需要生成这个长度为15的字符串:...............

我需要这样做.我尝试使用它作为基础(来自Unix.com):

for i in {1..100};do printf "%s" "#";done;printf "\n"
Run Code Online (Sandbox Code Playgroud)

但是如何让100成为一个变量呢?

unix shell

38
推荐指数
5
解决办法
4万
查看次数

如何在shell中重复破折号(连字符)

如何-在shell中重复n次?我已阅读并试过这个,但这不起作用-.它抛出错误invalid option.以下是我使用的确切命令:

printf '-%.0s' {1..100}
Run Code Online (Sandbox Code Playgroud)

原贴线: printf '-%0.s' {1..100}

我也试过逃避-,\但在这种情况下,它重复\-n次.

linux bash shell repeat

12
推荐指数
2
解决办法
3461
查看次数

如何使用printf多次打印字符?

使用printf,可以多次打印一个字符:

$ printf "%0.s-" {1..5}
-----
Run Code Online (Sandbox Code Playgroud)

awk我知道我可以做类似:

$ awk 'BEGIN {while (i++ < 5) printf "-"}'
-----
Run Code Online (Sandbox Code Playgroud)

但我想知道awk是否printf允许这样做.

我浏览了printf修饰符页面,但无法找到.总而言之,Bash的printf是为每个参数扩展{1..5}和打印一个-,所以它相当于说

$ printf "%0.s-" hello how are you 42
-----
Run Code Online (Sandbox Code Playgroud)

但是,我缺乏如何使用awk的printf来模仿这种行为的知识,如果可能的话,因为这会失败:

$ awk 'BEGIN {printf "%0.s-", 1 2 3 4 5}'
-
Run Code Online (Sandbox Code Playgroud)

awk printf gawk

9
推荐指数
2
解决办法
5805
查看次数

用 `sed` 和 `tr` 替换空字节

Bash 新手;使用这个习语来生成一个字符串的重复:

echo $(head -c $numrepeats /dev/zero | tr '\0' 'S')
Run Code Online (Sandbox Code Playgroud)

我决定用多个字符替换每个空字节(例如,“MyString”而不是“S”),所以我用 sed 尝试了以下操作

echo $(head -c $numrepeats /dev/zero | sed 's/\0/MyString/g' )
Run Code Online (Sandbox Code Playgroud)

但我只是得到一个空的输出。我意识到我必须做

echo $(head -c $numrepeats /dev/zero | sed 's/\x0/MyString/g' )
Run Code Online (Sandbox Code Playgroud)

或者

echo $(head -c $numrepeats /dev/zero | sed 's/\x00/MyString/g' )
Run Code Online (Sandbox Code Playgroud)

相反,但我不明白为什么。trsed匹配的字符有什么区别?是因为sed匹配正则表达式吗?

编辑 有趣的发现,\0在命令的replacement部分's/regexp/replacement' sed实际上与&. 仍然没有解释为什么\0inregexp与空字节不匹配(正如它在tr和大多数其他正则表达式实现中所做的那样)

bash sed

6
推荐指数
1
解决办法
9547
查看次数

Bash:重复字符可变次数

根据以下问题和思考:

https://unix.stackexchange.com/questions/188658/writing-a-character-n-times-using-the-printf-command

如何在 bash 中重复一个字符?

我想了解如何参数化字符/字符串的重复值。例如,以下内容非常有效:

printf "   ,\n%0.s" {1..5}
Run Code Online (Sandbox Code Playgroud)

但是,如果我想参数化 '5',请说:

num=5
Run Code Online (Sandbox Code Playgroud)

我似乎无法正确进行扩展以完成这项工作。例如:

printf "   ,\n%0.s" {1..$((num))}
Run Code Online (Sandbox Code Playgroud)

失败。

任何想法/想法都会受到欢迎 - 我认为有一种方法可以做到这一点,而不必求助于 perl 或 awk,所以只是好奇是否有可能。

谢谢!

string bash repeat

5
推荐指数
2
解决办法
4710
查看次数

从破折号字符中绘制一条水平线,占据bash中终端的整个宽度

我需要一个在终端中绘制水平"线"的命令.该行必须与终端的长度完全一致(无论当前终端宽度如何),并且由短划线字符组成(尽管也可以使用水平线的unicode符号).

它是否可以着色更好.

我需要像这样使用它:

echo some text
drawline
echo more text
Run Code Online (Sandbox Code Playgroud)

输出看起来像这样:

echo some text
---------------------------------------------------------------------------------
echo more text
Run Code Online (Sandbox Code Playgroud)

linux bash terminal

4
推荐指数
3
解决办法
5830
查看次数

bash:打印x个空行

有时我想一次创建大量的空白(与特定字符略有不同).我尝试使用for循环执行此操作,但我只\n使用此实现打印一次.此外,实际的'\n'字符实际上是打印而不是空行.有什么更好的方法呢?

for i in {1....100}
> do
>   echo "\n"
> done
Run Code Online (Sandbox Code Playgroud)

unix bash shell

3
推荐指数
2
解决办法
2765
查看次数

下划线变量后跟范围在 bash 中意味着什么:$_{0..10}

根据tldp.org,bash 下划线变量是:

下划线变量在 shell 启动时设置,包含参数列表中传递的正在执行的 shell 或脚本的绝对文件名。随后,它在扩展后扩展为上一个命令的最后一个参数。它还设置为执行的每个命令的完整路径名,并放置在导出到该命令的环境中。检查邮件时,该参数保存邮件文件的名称。


但是这个答案是如何在 Bash 中重复一个字符?它的用法很奇怪:

# exactly the same as perl -E 'say "=" x 100'.
echo -e ''$_{1..100}'\b='
Run Code Online (Sandbox Code Playgroud)

使用这个变量我无法从它的语义中得到任何东西,所以问题是

  • 一根绳子。
  • 其次是$_
  • 其次是范围的扩大。
  • 后面跟着另一个字符串

bash 中的意思?

样本:

# exactly the same as perl -E 'say "=" x 100'.
echo -e ''$_{1..100}'\b='
Run Code Online (Sandbox Code Playgroud)

bash

3
推荐指数
1
解决办法
3612
查看次数

spawnSync /bin/sh ENOBUFS

错误“ spawnSync /bin/sh ENOBUFS ”在执行以下行时非系统地在我的 NodeJs 应用程序中产生:

child_process.execSync(`cd /tmp/myFolder ; tar -xjf myArchive.tar.bz2`);
Run Code Online (Sandbox Code Playgroud)

存档大小为 81.5 MB,带有 NVM 的 NodeJs 版本:12.17.0。

javascript node.js

3
推荐指数
2
解决办法
2394
查看次数

printf 在 zsh 中添加神秘的尾随 % 字符

我想*在 zsh 中打印重复的字符。这个答案有一个解决方案,适用于bash

printf '*%.0s' {1..50}
Run Code Online (Sandbox Code Playgroud)

但是,当我在 中运行它时zsh,我得到以下输出:

**************************************************%
Run Code Online (Sandbox Code Playgroud)

尾随%标志颜色反转的地方。这对我来说很神秘,我想知道为什么会发生这种情况,我该如何避免?

printf zsh

2
推荐指数
1
解决办法
376
查看次数

bash 相当于 python 中的字符串乘法 ("=" * { n })

bash是否有相当于python 优雅的字符串乘法的方法?

>>> "=" * 8
'========'
Run Code Online (Sandbox Code Playgroud)

python string bash

0
推荐指数
1
解决办法
143
查看次数

有没有比使用 while 循环更有效的方法来创建每行包含重复文本的文件?(100万行以上)

我需要创建一个仅包含点符号“.”的文本文件。在每一行上重复,直到达到变量中存储的特定行数。我现在使用 while 循环,但那些带点的文件需要大约 0.5-5 百万行。因此,它需要的时间比我想要的要长一些。下面是我当前的代码:

j=0
while [[ $j != $length ]] 
do
  echo "." >> $file
  ((j++))
done
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:除了使用 while 循环之外,是否有更有效的方法来创建一个包含 x 行且每行包含相同字符(或字符串)重复的文件?

谢谢,

bash shell

0
推荐指数
1
解决办法
483
查看次数

标签 统计

bash ×9

shell ×5

linux ×2

printf ×2

repeat ×2

string ×2

unix ×2

awk ×1

gawk ×1

javascript ×1

node.js ×1

python ×1

sed ×1

terminal ×1

zsh ×1