如何在文件中找到grep字符串;操纵;然后写入新文件?

时间:2016-12-18 19:43:11

标签: macos command-line grep

    for file in *.doc; do grep '/[A-Z\.]{225}/' $file > $file.txt;  done;

在文件目录中,每个文件都有一个225个字符的字符串(所有大写字母周期性地以点“。”分隔;点是间歇性的:相隔3到15个字母的任何位置)。我需要提取此字符串并将其显示为15x15数据网格。

我正在尝试查找字符串,每15个字符添加回车符,然后将新字符串复制到新文件中;或将所有15x15网格连接到一个文件上。

我不了解grep字符串,因为即使尝试在单个文件中查找字符串也没有产生成功的结果。

    grep '/[A-Z\.]{225}/' file332.doc > file332.txt;

示例输入字符串X = A-Z:

... XXXXX.XXXXX.XXXXXXXX.XXXXX.XXXXXXXXXXXXXX.XXX..XXXXXX..XXXXXXXXX.XXXXXXXXXXXXX.XXX.XXXX ... XXXXX..XXX.XXX.XXXXXXXXXXXXXXX.XXX.XXX..XXXXX XXXX.XXX .XXXXXXXXXXXXX.XXXXXXXXX..XXXXXX..XXX.XXXXXXXXXXXXXX.XXXXX.XXXXXXXX.XXXXX.XXXXX

期望的输出:

    XXXXX.XXXXX.XXX
    XXXXX.XXXXX.XXX
    XXXXXXXXXXX.XXX
    ..XXXXXX..XXXXX
    XXXX.XXXXXXXXXX
    XXX.XXX.XXXX...
    XXXXX..XXX.XXX.
    XXXXXXXXXXXXXXX
    .XXX.XXX..XXXXX
    ...XXXX.XXX.XXX
    XXXXXXXXXX.XXXX
    XXXXX..XXXXXX..
    XXX.XXXXXXXXXXX
    XXX.XXXXX.XXXXX
    XXX.XXXXX.XXXXX

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:1)

我建议:

grep -Eo '[A-Z\.]{225}' file332.doc | fold -b -w 15 > file332.txt

输出到file332.txt:

XXXXX.XXXXX.XXX
XXXXX.XXXXX.XXX
XXXXXXXXXXX.XXX
..XXXXXX..XXXXX
XXXX.XXXXXXXXXX
XXX.XXX.XXXX...
XXXXX..XXX.XXX.
XXXXXXXXXXXXXXX
.XXX.XXX..XXXXX
...XXXX.XXX.XXX
XXXXXXXXXX.XXXX
XXXXX..XXXXXX..
XXX.XXXXXXXXXXX
XXX.XXXXX.XXXXX
XXX.XXXXX.XXXXX