mun*_*ish 4 linux text-processing sort
示例文件:
第一列可以有固定的 4 个无序值集 world1.com,world2.com,world3.com or world4.com
第二列是属于每一行的键,这样四个集合中的每一个都有唯一的随机键。
world4.com /randomkeyhghgdh778/key67567
world1.com /randomkeygahjuh572/key639839
world2.com /randomkey788gauh72/key63whjk
world3.com /randomkey788gauh72/key63whjk
world1.com /randomkeyhueh34778/key67uuu77
world4.com /randomkey8998382/key6hh77686
world3.com /randomkey7HHHH0000/key6333355k
world2.com /randomkeyJJJJ1111/key63333
Run Code Online (Sandbox Code Playgroud)
等等
期望输出:
world1.com /randomkeygahjuh572/key639839
world2.com /randomkey788gauh72/key63whjk
world3.com /randomkey788gauh72/key63whjk
world4.com /randomkeyhghgdh778/key67567
world1.com /randomkeyhueh34778/key67uuu77
world2.com /randomkeyJJJJ1111/key63333
world3.com /randomkey7HHHH0000/key6333355k
world4.com /randomkey8998382/key6hh77686
Run Code Online (Sandbox Code Playgroud)
按世界组织文件:
$ paste -d'\n' <(grep world1 file) <(grep world2 file) <(grep world3 file) <(grep world4 file)
world1.com /randomkeygahjuh572/key639839
world2.com /randomkey788gauh72/key63whjk
world3.com /randomkey788gauh72/key63whjk
world4.com /randomkeyhghgdh778/key67567
world1.com /randomkeyhueh34778/key67uuu77
world2.com /randomkeyJJJJ1111/key63333
world3.com /randomkey7HHHH0000/key6333355k
world4.com /randomkey8998382/key6hh77686
Run Code Online (Sandbox Code Playgroud)
我们可以用来grep
为每个世界选择线条:
$ grep world4 file
world4.com /randomkeyhghgdh778/key67567
world4.com /randomkey8998382/key6hh77686
Run Code Online (Sandbox Code Playgroud)
paste
合并来自多个文件的行。粘贴命令可能如下所示:
paste -d'\n' file1 file2 file3 file3.
Run Code Online (Sandbox Code Playgroud)
我们实际上不必为每个世界创建真实的文件。相反,我们可以使用进程替换为每个对象创建类似文件的对象:
paste -d'\n' <(grep world1 file) <(grep world2 file) <(grep world3 file) <(grep world4 file)
Run Code Online (Sandbox Code Playgroud)
bash、zsh 和 AT&T ksh88 和 ksh93 支持进程替换,但不支持 dash、pdksh 或 mksh。
为了说明这种方法的灵活性,我们将对每个世界的键进行排序。 注意:排序会破坏行集。如果您想将集合放在一起,请不要使用它。
我们可以使用grep
,然后sort
每个世界分开世界,然后使用将线合并在一起paste
:
$ paste -d'\n' <(grep world1 file | sort -k2,2) <(grep world2 file | sort -k2,2) <(grep world3 file | sort -k2,2) <(grep world4 file | sort -k2,2)
world1.com /randomkeygahjuh572/key639839
world2.com /randomkey788gauh72/key63whjk
world3.com /randomkey788gauh72/key63whjk
world4.com /randomkey8998382/key6hh77686
world1.com /randomkeyhueh34778/key67uuu77
world2.com /randomkeyJJJJ1111/key63333
world3.com /randomkey7HHHH0000/key6333355k
world4.com /randomkeyhghgdh778/key67567
Run Code Online (Sandbox Code Playgroud)
请注意,这sort
取决于语言环境。不同的locales
可能导致不同的订单。
归档时间: |
|
查看次数: |
154 次 |
最近记录: |