Bash 如何通过shell脚本对文件中的随机字符串进行排序
我有一个随机带有这些字符串的文件。如何对它们进行水平排序并消除任何重复项Bash 如何通过shell脚本对文件中的随机字符串进行排序,bash,shell,unix,awk,cut,Bash,Shell,Unix,Awk,Cut,我有一个随机带有这些字符串的文件。如何对它们进行水平排序并消除任何重复项 cat file ticket-125788 ticket-126824 ticket-126957 ticket-126914 ticket-127220 ticket-125948 ticket-126914 ticket-127030 ticket-127262 ticket-127012 ticket-127022 ticket-127035
cat file
ticket-125788 ticket-126824 ticket-126957 ticket-126914
ticket-127220
ticket-125948 ticket-126914
ticket-127030
ticket-127262
ticket-127012 ticket-127022
ticket-127035
ticket-126961
ticket-127024
所需输出:
ticket-125788 ticket-126824 ticket-126957 ticket-127220 ticket-125948 ticket-126914 ticket-127030 ticket-127262 ticket-127012 ticket-127022 ticket-127035 ticket-126961 ticket-127024
整个想法是
grep
每个«字符串»,然后通过tr
将其折叠成一行
$> grep -P -o "[0-9a-z-]+" file | sort --unique | tr '\n' ' '
ticket-125788 ticket-125948 ticket-126824 ticket-126914 ticket-126957 ticket-126961 ticket-127012 ticket-127022 ticket-127024 ticket-127030 ticket-127035 ticket-127220 ticket-127262
整个想法是
grep
每个«字符串»,然后通过tr
将其折叠成一行
$> grep -P -o "[0-9a-z-]+" file | sort --unique | tr '\n' ' '
ticket-125788 ticket-125948 ticket-126824 ticket-126914 ticket-126957 ticket-126961 ticket-127012 ticket-127022 ticket-127024 ticket-127030 ticket-127035 ticket-127220 ticket-127262
这将实现以下目的:
$ grep -o '\S*' file | sort -u | tr '\n' ' '
ticket-125788 ticket-125948 ticket-126824 ticket-126914 ticket-126957 ...
将每张票放在一条单独的线上grep-o
排序并删除重复项sort-u
cat file
ticket-125788 ticket-126824 ticket-126957 ticket-126914
ticket-127220
ticket-125948 ticket-126914
ticket-127030
ticket-127262
ticket-127012 ticket-127022
ticket-127035
ticket-126961
ticket-127024
tr'\n'
将输出展平为单行xargs
:
$ xargs -n1 < file | sort -u | xargs
ticket-125788 ticket-125948 ticket-126824 ticket-126914 ticket-126957 ...
$xargs-n1
这将实现以下目的:
$ grep -o '\S*' file | sort -u | tr '\n' ' '
ticket-125788 ticket-125948 ticket-126824 ticket-126914 ticket-126957 ...
将每张票放在一条单独的线上grep-o
排序并删除重复项sort-u
cat file
ticket-125788 ticket-126824 ticket-126957 ticket-126914
ticket-127220
ticket-125948 ticket-126914
ticket-127030
ticket-127262
ticket-127012 ticket-127022
ticket-127035
ticket-126961
ticket-127024
tr'\n'
将输出展平为单行xargs
:
$ xargs -n1 < file | sort -u | xargs
ticket-125788 ticket-125948 ticket-126824 ticket-126914 ticket-126957 ...
$xargs-n1