Questions tagged «text-processing»

通过程序,脚本等操作或检查文本

4
在多个文件中添加一行文本
因此,我在目录中有一堆文件,并且需要在其中每个文件中插入一行文本。它们实质上具有以下格式: <VirtualHost *:80> ServerAdmin gabe@localhost DocumentRoot /var/www/test1 ServerName test1.local ServerAlias test1 <Directory "/var/www/test1"> Options All AllowOverride All </Directory> </VirtualHost> 我想在结束之前插入一行 </ VirtualHost>标签。我的第一个假设是,我应该能够使用sed进行此操作,可能是匹配并替换了该标签。我现在将开始尝试此操作,但是如果任何人都可以使用现有的方法来执行此操作,我将很乐意听到。

6
处理/ etc / passwd文件以列出其home文件夹位于/ home中的所有用户
我有一个示例/ etc / passwd文件,如下所示: tom:x:1000:1000:Work:/home/tom:/bin/bash george:x:1000:1000:Work:/home/george:/bin/bash bla:x:1000:1000:Work:/home/bla:/bin/bash boo:x:1000:1000:Work:/home/boo:/bin/bash bee:x:1000:1000:Work:/root/list:/bin/bash 我正尝试在中列出所有带有主文件夹的用户/home/。 我写 cat ~/Desktop/e.txt |awk -F ":" '{if ($6 ~/^/home/) print $1;}' 其中e.txt是我在此处复制的文本。 我知道反斜杠存在一个问题,即转义字符,但是如何解决它,以便可以在命令的一行中列出它们?

1
识别文件中的重复文本块
是否有一种简便的方法来识别文件中重复的文本或接近重复的文本块? 我想用它来识别代码重复。看起来有些专业程序具有此功能,但我不想参与其中。 我希望有一个类似于diff的工具,可以进行某种“文件内”比较。甚至更好的是在单个文件中的vimdiff。

2
合并两个单独文件中的列
如何使用awk创建一个合并两个单独文件中的选择性列的新文件?无需弄乱两个文件的元素顺序。 示例:文件3可能包含文件1中的1,2,3列和文件2中的4列。 File 1 A 23 8 T A 63 9 9 B 45 3 J File 2 A 0 A 6 B 5 File 3 A 23 8 0 A 63 9 6 B 45 3 5

6
如何删除bash中的尾随换行符?
我正在寻找行为类似于Perl的产品chomp。我正在寻找一个仅打印其输入的命令,如果它是换行符,则减去最后一个字符: $ printf "one\ntwo\n" | COMMAND_IM_LOOKING_FOR ; echo " done" one two done $ printf "one\ntwo" | COMMAND_IM_LOOKING_FOR ; echo " done" one two done (Bash和Zsh中的命令替换会删除所有尾随的新行,但是我正在寻找一种最多删除一个尾随的新行的东西。)

3
处理以BOM表(FF FE)开头的文件
我收到了带有FF FEBOM 的.csv文件: $ head -n1 dotan.csv | hd 00000000 ff fe 41 00 64 00 20 00 67 00 72 00 6f 00 75 00 |..A.d. .g.r.o.u.| 当使用awk它解析时,我得到了一堆空字节,我怀疑这是由于字节顺序所致。如何交换该文件上的字节顺序(使用CLI),以便普通工具可以使用它? 请注意,我认为该文件仅是ASCII字符(BOM除外),但是我不能确认grep它是二进制文件: $ grep -P '^[\x00-\x7f]' dotan.csv Binary file dotan.csv matches 在VIM中搜索相同的字符串会显示每个匹配的字符! 使用iconv转换为ASCII不会摆脱\ x00值,实际上,这使问题变得更糟,因为它们现在看起来像空字节而不是UTF-8! $ iconv -f UTF-8 -t ASCII dotan.csv > …

3
用顺序索引替换字符串
有人可以建议一种优雅的方式来实现这一目标吗? 输入: test instant () test instant () ... test instant () //total 1000 lines 输出应为: test instant1 () test instant2 () test instant1000() 空行在我的输入文件中,并且同一目录下有很多文件需要立即处理。 我试图用它替换同一个目录中的许多文件,但没有用。 for file in ./*; do perl -i -000pe 's/instance$& . ++$n/ge' "$file"; done 错误: Substitution replacement not terminated at -e line 1. Substitution replacement …

2
大型单行文件上的基本sed命令:无法重新分配内存
我有一个250 MB的文本文件,全部在一行中。 在此文件中,我想a用b字符替换字符: sed -e "s/a/b/g" < one-line-250-mb.txt 它失败并显示: sed: couldn't re-allocate memory 在我看来,此类任务可以内联执行而无需分配太多内存。 是否有更好的工作工具或更好的使用方法sed? GNU sed版本4.2.1 Ubuntu 12.04.2 LTS 1 GB RAM

6
将树命令的输出转换为json格式
有没有简便的方法可以将* nix命令“ tree”的输出转换为JSON格式? 编辑: 我认为我对问题的描述不够充分。我的目标是转换类似: . |-- dir1 | |-- dirA | | |-- dirAA | | `-- dirBB | `-- dirB `-- dir2 |-- dirA `-- dirB 变成: {"dir1" : [{"dirA":["dirAA", "dirAB"]}, "dirB"], "dir2": ["dirA", "dirB"]}

4
从并行产生的其他三个流中创建一个输出流
我有三种格式不同的数据。对于每种数据类型,都有一个Python脚本将其转换为统一的格式。 该Python脚本运行缓慢且受CPU限制(连接到多核计算机上的单个核),因此我想运行该脚本的三个实例(每种数据类型一个),并将其输出组合到中sort。基本上,等效于: { ./handle_1.py; ./handle_2.py; ./handle_3.py } | sort -n 但是,三个脚本并行运行。 我发现了一个问题,其中使用GNU split在处理该流的脚本的n个实例之间循环一些stdout流。 在拆分手册页中: -n, --number=CHUNKS generate CHUNKS output files. See below CHUNKS may be: N split into N files based on size of input K/N output Kth of N to stdout l/N split into N files without splitting lines …

3
转换制表符分隔的文件以使用换行符
input.txt(大约3万行) RT|367079254|bn|ERTS01065811.1| 38 1 503 RT|367079251|bn|ERTS01065814.1| 56 3 502 RT|367079248|bn|ERTS01065817.1| 52 2 502 output.txt RT|367079254|bn|ERTS01065811.1| 38 1 503 RT|367079251|bn|ERTS01065814.1| 56 3 502 RT|367079248|bn|ERTS01065817.1| 52 2 502

4
内联排序字段
我正在尝试在未知数量的字段的输入行中进行排序: 输入: ab bc bc ab cd ef bc bc cd ef cd bc ab ef ab bc cd gh 输出: ab bc ab bc bc cd ef bc cd ef ab cb cd ab bc cd ef gh 我一直在使用类似的东西,awk '{if($2 < $1) print $2,$1;else print}'但似乎在两个以上的领域上都会变得混乱。有什么帮助吗?

7
获取字符的数字ASCII值
我正在尝试编写一个shell脚本,该脚本要求输入AZ或az范围内的ASCII字符并返回其等效数值。例如,输出可能如下所示: scarlet$ Please type a character between A and Z or between a and z: scarlet$ A scarlet$ The decimal value of A is: 65 我的尝试: #!/bin/bash echo Enter a letter: read A echo -n ${A} | od -i | head -1 | cut -b 10- | tr -d " …



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.