Questions tagged «text-formatting»

有关使用命令行工具(例如awk,sed,perl,pr等)格式化文本文件的问题。对于printf格式的字符串,请使用[printf]标记。对于日期格式字符串,请使用[date]。另请参见[text-processing]标签。

3
“ ASCII文本,带有过度击打”文件格式的目的
在下载了Bash的源代码之后,我浏览了doc目录并遇到了以下文件: bash.1是用于构建手册页的常规troff文件。 bash.0就像手册页的纯文本版本一样–只是它在整个页面中自由分配了^H退格控制字符。 这些控制字符不会显示在Git Web界面提供的表示中,但是可以在文本编辑器(如Vim)中下载并检查实际文件。 在file上运行命令bash.0将输出以下输出: bash.0: ASCII text, with overstriking 我以前从未遇到过这种文件格式,我想知道其目的是什么以及如何使用它。在网上搜索短语“ ASCII文本,带有过度敲击”并不是很有意义。

1
如何使用jq standalone进行prettyprint json?
当前,当我想使用jq漂亮打印json文件时,我使用: cat file.json | grep jq . 但是我希望jq可以接受文件名作为参数而不必回退cat。 手册页显示: jq [选项...]过滤器[文件...] ...默认情况下,jq从stdin读取JSON对象流(以空格分隔)。可以指定一个或多个文件,在这种情况下,jq将从这些文件中读取输入。 尚未运行: jq file.json 由于抛出未定义键的编译错误而失败。 运行时我应该如何添加文件jq?


4
Bash Shell脚本输出对齐
我的剧本: date echo -e "${YELLOW}Network check${NC}\n\n" while read hostname do ping -c 1 "$hostname" > /dev/null 2>&1 && echo -e "Network $hostname : ${GREEN}Online${NC}" || echo -e "${GRAY}Network $hostname${NC} : ${RED}Offline${NC}" done < list.txt sleep 30 clear done 正在输出这样的信息: Network 10.x.xx.xxx : Online Network 10.x.xx.xxx : Offline Network 10.x.xx.xxx : …

12
文件行到列的转换
假设我有一个文件: 文件1: PAPER TEAM MANISH NISHA GARIMA JYOUTI ........etc 我想要的File2: PAPER TEAM MANISH NISHA GARIMA JYOUTI 行到列的转换File1。

3
格式化ps的cputime输出
我正在尝试编写一个脚本,该脚本可以在一定时间间隔内监视进程的CPU使用情况(以创建图形)。 到目前为止,这是我正在使用的命令 ps -p $PROCID -o cputime,etimes 我唯一关心的是cputime的输出似乎是[dd]hh:mm(或类似的东西,现在已经不记得了) 有没有一种方法可以以秒为单位格式化cputime,就像etime-> etimes以秒为单位获取经过时间? 编辑:这是我当前收到的输出 2-03:01:33 2653793 我希望第一个参数的格式设置为秒,而不是day-hours:minutes:seconds。

4
根据文件名中的编号以特定顺序排列cat文件
我有一个名为文件file.88_0.pdb,file.88_1.pdb,...,file.88_100.pdb。我想要cat它们,以便file.88_1.pdb在file.88_0.pdb,file.88_2.pdb之后等粘贴file.88_1.pdb。如果这样做cat file.88_*.pdb > all.pdb,文件将按以下顺序组合:0 1 10 11 12 13 14 15 16 17 18 19 2 20...等。如何按顺序将它们组合在一起0 1 2 3 4 5 6...?

2
删除所有在定界符前没有n个字符的行
我有一个很长的文本文件(从此处开始),其中应包含6个十六进制字符,然后是一个“ break”(显示为一个字符,在下面的代码降价中似乎无法正确显示),然后是几个单词: 00107B Cisco Systems, Inc 00906D Cisco Systems, Inc 0090BF Cisco Systems, Inc 5080 Cisco Systems, Inc 0E+00 ASUSTek COMPUTER INC. 000C6E ASUSTek COMPUTER INC. 001BFC ASUSTek COMPUTER INC. 001E8C ASUSTek COMPUTER INC. 0015F2 ASUSTek COMPUTER INC. 2354 ASUSTek COMPUTER INC. 001FC6 ASUSTek COMPUTER INC. 60182E ShenZhen Protruly Electronic …

4
以固定宽度打印手册页
使用示例命令 man apropos > outputfile 将生成一个文本文件,其中包含的格式化man页面apropos(与man apropos直接打印在屏幕上的字体有一些细微差别,例如粗体字符)。 但是我想手动设置生成的输出文件的最大行宽,以便所有段落都可以证明为该宽度。 man页面是通过创建的groff:例如,我试图将.ll 50原始.gz man源文本文件的段落放在前面,但是如果我需要在多个man页面上工作,这是微不足道的。此外,并非所有字符都可以识别: apropos.1:45: warning: can't find character with input code 195 apropos.1:45: warning: can't find character with input code 168 apropos.1:47: warning: can't find character with input code 178 apropos.1:131: warning: can't find character with input code 169 因此,我想知道是否存在更直接的方法。在创建过程中如何修改最大线宽outputfile?有一些特定的命令吗? 编辑: (以下所有注意事项均与Ubuntu …

1
将文本格式化为列
我有一个两列的文件,如下所示(示例): 文件1: John 1 Peter 2 Michael Rod 3 Su 7 Louise 9 我需要格式化它,我的预期输出应该是: 文件1: John 1 Peter 2 Michael Rod 3 Su 7 Louise 9

4
使用awk修改具有可变字段数的文件中第一列的宽度
我知道如何使用awk的printf函数,但是我不想指定每个字段。 例如,假设这是我的文件: c1|c2|c3|c4|c5 c6|c7|c8|c9|c10 c11|c12|c13|c14|c15 我想对其进行格式化,以便每个记录的第一个字段是c11的宽度-第一个字段中最长的单元格: c1 |c2|c3|c4|c5 c6 |c7|c8|c9|c10 c11|c12|c13|c14|c15 我了解我可以指定: awk -F"|" '{printf "%-3s%s%s%s%s\n", $1, $2, $3, $4, $5}' file > newfile 假设我知道我希望第一列的宽度是多少,但是我不知道文件中有多少个字段。基本上我想做这样的事情: ... '{printf "%-3s|", $1}' ...,然后以其原始格式打印其余字段。

5
用逗号替换下划线并删除CSV中的双引号
我有一个CSV文件 input.csv "1_1_0_0_76" "1_1_0_0_77" "1_1_0_0_78" "1_1_0_0_79" "1_1_0_0_80" "1_1_0_0_81" "1_1_0_0_82" "1_1_0_0_83" "1_1_0_0_84" "1_1_0_0_85" ............. 等等。 我需要将此CSV文件转换为 result.csv 1,1,0,0,76 1,1,0,0,77 1,1,0,0,78 1,1,0,0,79 1,1,0,0,80 1,1,0,0,81 1,1,0,0,82 1,1,0,0,83 1,1,0,0,84 1,1,0,0,85


6
AWK:将行换成72个字符
$ awk 'length > 72' {HOW TO PRINT THE LINEs IN PCS?} msg 即我希望它\n在72个字符之后添加并继续,因此最初您可能需要删除所有single \n并将其添加。使用其他工具可能更容易一些,但让我们尝试一下awk。 [更新] 威廉姆森提供了正确的答案,但需要一些帮助才能阅读。我在下面用更简单的示例将问题分为几部分。 为什么\t在两种情况下都显示下面的代码,gsub应该替换掉?x是一个虚拟文件,结尾处为奇数0。 line = $0 \n more = getline \n gsub("\t"," ")在威廉姆森的答复中上线,line显然得到整个标准输出,而more获得的弹出值是$0吗? 编写第1部分的代码 $ gawk '{ hallo="tjena\t tjena2"; gsub("\t"," "); }; END {print hallo; gsub("\t", ""); hallo=hallo gsub("\t",""); print hallo }' x tjena tjena2 …

2
删除方括号之间的所有内容
我只想删除以方括号“>”开头的行(包括方括号)在内的所有内容。有sed替代方法吗?另外,想按字母顺序对行进行排序,也就是以“>”开头的行及其下一行。 输入示例: >ID:000:FLKLNFIA_00192 |[Ignicoccus_hospitalis_KIN4-I.gbfspecies]|strain|Ignicoccus_hospitalis_KIN4-I.gbf|LSU ribosomal protei..|447|FLKLNFIA_1(1297538):162644-163090:1 ^^ Archaeagenomesparanahui Ignicoccus_hospitalis_KIN4-I.gbfspecies strain strain.|neighbours:ID:000:FLKLNFIA_00191(1),ID:000:FLKLNFIA_00193(1)|neighbour_genes:LSU ribosomal protei..,SSU ribosomal protei..| ATGAGTGTGACTA---TTT---GCAATCAGCTAGCTACTACGTACTGATCGTAGCTGACG >ID:000:MGCDKLCO_01184 |[Archaeoglobus_fulgidus_DSM_4304.gbfspecies]|strain|Archaeoglobus_fulgidus_DSM_4304.gbf|50S ribosomal protei..|471|MGCDKLCO_1(2178400):1005279-1005749:1 ^^ Archaeagenomesparanahui Archaeoglobus_fulgidus_DSM_4304.gbfspecies strain strain.|neighbours:ID:000:MGCDKLCO_01183(1),ID:000:MGCDKLCO_01185(1)|neighbour_genes:LSU ribosomal protei..,SSU ribosomal protei..| ATGCGCGCGATAGCTAGCTAGCTAGCTTTAGGGGGATTAGCTA----ACTCTGATTCGGA 预期产量: >Archaeoglobus_fulgidus_DSM_4304.gbfspecies ATGCGCGCGATAGCTAGCTAGCTAGCTTTAGGGGGATTAGCTA----ACTCTGATTCGGA >Ignicoccus_hospitalis_KIN4-I.gbfspecies ATGAGTGTGACTA---TTT---GCAATCAGCTAGCTACTACGTACTGATCGTAGCTGACG 谢谢
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.