假设有一个file.txt,其中写有以下内容文本:
ABC/xyz
ABC/xyz/rst
EFG/ghi
我需要编写一个shell脚本,可以在第一个/
之前提取第一个唯一字。
因此,作为输出,我希望ABC
和EFG
写在一个文件中。
答案 0 :(得分:2)
您可以使用cut
(斜杠作为分隔符)提取第一个单词,然后使用sort
(对于"唯一")选项输出到-u
:< / p>
$ cut -d '/' -f 1 file.txt | sort -u
ABC
EFG
要将输出转换为文件,只需将> filename
附加到命令即可重定向。 (或管道到tee filename
以查看输出和将其放入文件中。)
答案 1 :(得分:0)
试试这个:
int maxDigit = this.myList.Where(x => x.Name.Any(Char.IsDigit))
.Select(x => int.Parse(new string(x.Name.Where(Char.IsDigit).ToArray())))
.DefaultIfEmpty(0).Max();
答案 2 :(得分:0)
您可以使用剪切和排序混合:
cut -d '/' -f 1 file.txt | sort -u > newfile.txt
第一行抓取任何字符串,直到斜杠/
并将其输出到newfile.txt。
第二行对文本进行排序,删除您可能拥有的任何重复字符串。
答案 3 :(得分:0)
另一个有趣的变化:
awk -F'/' '{print $1 |" sort -u" }' file.txt > outfile.txt
这并不重要,但能够在awk中进行管道和重定向非常方便。
答案 4 :(得分:0)
另一种简单方法:
cut -d"/" -f1 file.txt|uniq > out.txt