我有大约 200 行,想将其分成 20 行。我不知道如何解释。
例如:
test:test | US
testt2:testsdgad | CZ
hksfdg:gsdsd | UK
| UK
我想将包含、| US
和的行分隔| CZ
在不同行上。我的意思是将其转换为以下格式:
test:test | US
test:test | US
test:test | US
test:test | CZ
test:test | CZ
test:test | UK
test:test | UK
test:test | UK
我怎样才能做到这一点?
答案1
你没有说你使用的是什么操作系统。这适用于 Linux,也许也适用于 Windows,如果你有 awk,呆呆地、nawk 或 mawk。
首先生成一个数据文件。您已经有一个了,因此可以跳过此步骤。
for n in {1..66}; do for c in US CZ UK; do echo "test$n:test$n | $c" >> data.in; done; done
然后将其输入到awk
(或gawk
等)进行排序和打印。
cat data.in | awk -- '{a[$3] = a[$3] $0 "\n"}; END{print a["US"] a["CZ"] a["UK"]}' > data.out
输出如下所示:
...
test65:test65 | US
test66:test66 | US
test1:test1 | CZ
test2:test2 | CZ
...