标签: fold

如何包装 watch 命令的输出?

考虑以下命令:

watch -d "ps -ef | grep java"
Run Code Online (Sandbox Code Playgroud)

它提供以下输出:

kshitiz  11369 11285  0 Oct13 ?        00:06:02 /usr/lib/jvm/jdk1.7.0_40/jre/bin/java -Djava.awt.headless=true -Didea.version==14.1.2 -Xmx512m -Dfile.e
Run Code Online (Sandbox Code Playgroud)

超出的输出-Dfile.e被截断或流出屏幕。如何滚动查看输出或自动换行?

fold不带手表使用: 在此处输入图片说明

fold与手表一起使用: 在此处输入图片说明

watch fold

9
推荐指数
1
解决办法
7489
查看次数

使用 coreutils 换行和缩进文本

精简版

我想创建一个多行文本的表格显示,类似于以下内容:

all       Build all targets
document  Create documentation of source files in the subfolders
          `src` and `script`, and write it to `man`
test      Run unit tests
Run Code Online (Sandbox Code Playgroud)

目前,我对此的输入如下所示,但这当然可以更改:

all---Build all targets
document---Create documentation of source files in the subfolders `src` and `script`, and write it to `man`
test---Run unit tests
Run Code Online (Sandbox Code Playgroud)

我已经尝试通过awkwrap/的组合来实现这一点,pr但是虽然换行有效,但缩进却没有。这是我目前的方法:

…
| awk -F '---' "{ printf '%-10s %s\n', $1, $2 }" \
| fold -w $(($COLUMNS - 1)) -s
Run Code Online (Sandbox Code Playgroud)

它生成输出

all       Build …
Run Code Online (Sandbox Code Playgroud)

make coreutils text-processing text-formatting fold

6
推荐指数
2
解决办法
2346
查看次数

折叠的 unicode 安全替代方案

我正在使用fold -w 3将一行拆分为多个 3 个字符长,但是对于 GNU 实现,它似乎不适用于具有多字节字符的文本。

我怎样才能实现上述目标sed

我想出了sed -r 's/^(.{0,3})(.*)/\1\n\2/g'但是这只会做一个替换:

echo "111222333444555666" | sed -r 's/^(.{0,3})(.*)/\1\n\2/g' 
111
222333444555666
Run Code Online (Sandbox Code Playgroud)

附加示例:

echo "???????????????????????" | sed -r 's/^(.{0,3})(.*)/\1\n\2/g' 
???
????????????????????
Run Code Online (Sandbox Code Playgroud)

并且fold它的破坏行为:

echo "???????????????????????" | fold -w 3                         
??
??
??
??
??
Run Code Online (Sandbox Code Playgroud)

sed fold

6
推荐指数
2
解决办法
907
查看次数

Unix 折叠命令行为异常

所以我有这个 fasta(生物学)文件,看起来像这样:

>m64093_191209_130050/133911/ccs_64
TTCAGGCTGTGTTCCATTTGATTTAAAATCAAATAATTTCATTCGCGTCAGAACACCTGGTTTCACGACC
ATAAATAATTTACCAGTGAATCGAGGCTCAATTATAGATCCTCGGACGCGAGTTCTCGGTTGACGAGTGG
GATTCGAATTATTTTTCACCGAAAATTTTAGTCGACGAGTTCAGATAAATTTGTTCGGGATAAAATCATC
TGAGTAGGTCGGGCTTCTGAATTTCGTATTCTTGCGAGCAATGAATTTTAAATAATCATCGGACATACCA
ATTTTTGGAACAATAATGTTCCGAACATCCCGAAAATATAGGAAGAGCCCGGATAGATAAAAATAAACAC
Run Code Online (Sandbox Code Playgroud)

每行最多 70 个字符长。通常,如果我想将其格式化为最多 50 个字符长,我使用:

fold -50 input.fasta > output.fasta # 也试过 -b 和 -w args

但不知何故,这是行不通的。该文件看起来与我见过的许多其他文件完全相同。输出现在看起来像这样:

>m64093_191209_130050/133911/ccs_64
TTCAGGCTGTGTTCCATTTGATTTAAAATCAAATAATTTCATTCGCGTCA
GAACACCTGGTTTCACGACC
ATAAATAATTTACCAGTGAATCGAGGCTCAATTATAGATCCTCGGACGCG
AGTTCTCGGTTGACGAGTGG
GATTCGAATTATTTTTCACCGAAAATTTTAGTCGACGAGTTCAGATAAAT
TTGTTCGGGATAAAATCATC
TGAGTAGGTCGGGCTTCTGAATTTCGTATTCTTGCGAGCAATGAATTTTA
AATAATCATCGGACATACCA
ATTTTTGGAACAATAATGTTCCGAACATCCCGAAAATATAGGAAGAGCCC
Run Code Online (Sandbox Code Playgroud)

它剪切了悬垂的 20 个字符并正确地将它们放置在下面,但是它没有加入下一行并将其剪切到最多 50 个字符上。

我回到了我之前创建的 fasta 文件,fold 命令仍然正常工作。如果我复制新文件的一段并将其传递到另一个文件中,问题仍然存在。

我认为可能存在我不知道的编码问题。任何人都可以帮忙吗?

干杯,

编辑:很好的答案,谢谢!!

bioinformatics fold

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