【发布时间】:2016-07-12 18:22:04
【问题描述】:
我已经阅读了有关此问题的其他几个问题,但似乎没有一个有效。我目前正在尝试使用分隔符“STOPHERE”拆分文件 A.txt 之类的内容。
这是代码:
#!/bin/bash
awk 'BEGIN{
RS = "STOPHERE"
file = 0}
{
file++
print $0 > ("sepf" file)
}' A.txt
文件 A:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa lwdjnuqqfqaaaaaaaaaa qlknfqek fkgnl efekfnwegelflfne
ldnwefne f STOPHEREsdfnkjnf nnnnnnnnnnnnnnnnnnnnnnnasd fefffffffffffffflllo
aldn3orn STOPHERE
fknjke bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbowqff STOPHERE i
asfjfenf STOPHERE
进入这些:
sepf1:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa lwdjnuqqfqaaaaaaaaaa qlknfqek fkgnl efekfnwegelflfne
ldnwefne f
sepf2:
sdfnkjnf nnnnnnnnnnnnnnnnnnnnnnnasd fefffffffffffffflllo
aldn3orn
sepf3:
#line starts here
fknjke bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbowqff
sepf4:
i
asfjfenf
所以基本上,STOPHERE 之间的格式必须保持完全相同。
但出于某种原因,这是我在某些文件中得到的那种输出:
例如:sepf2
TOPHEREsdfnkjnf nnnnnnnnnnnnnnnnnnnnnnnasd fefffffffffffffflllo
aldn3orn
关于为什么“TOPHERE”仍然存在的任何想法?
【问题讨论】:
-
这表示只有第一个字符用作记录分隔符staff.science.uu.nl/~oostr102/docs/nawk/nawk_19.html
-
有什么办法可以改变它,让它使用整个单词?
-
根据您的操作系统尝试 nawk 或 gawk。它们允许使用正则表达式。
-
谢谢!我会试试的。
-
我很好奇——到底什么起作用了?如果答案有帮助和/或解决了问题,我建议您mark them accordingly (link)。这有助于其他用户。