차이점을 찾아 보자 : 정렬 정렬, uniq 반복 라인 정렬, tr 문자 세트 교체, 압축 및 삭제, 정규식

정렬 정렬, uniq 반복 라인 정렬, tr을 교체, 압축 및 삭제 문자 세트, 정규식

하나, 정렬 명령

----------------------- 줄 단위 또는 다른 데이터 유형에 따라 파일 내용 정렬 ---------- --------------

구문 형식 :

sort [选项] 参数

cat file | sort 选项

일반적인 옵션 :

-f:忽略大小写,默认会将大写字母排在前面

-b:忽略前导区域的区域

-n:按照数字进行排序

-r:反向排序

-u:等同于uniq,表示相同的数据仅显示一行

-t:指定字段分隔符,默认使用[Tab]键分隔

-k:指定排序字段

-o<输出文件>:将排序后的结果转存至指定文件

sort -n testfile2

sort -t ':' -k 3 -n /etc/passwd

du -a I sort -nr -o du.txt

여기에 사진 설명 삽입
여기에 사진 설명 삽입
여기에 사진 설명 삽입
여기에 사진 설명 삽입
여기에 사진 설명 삽입
여기에 사진 설명 삽입
여기에 사진 설명 삽입

둘째, uniq 명령

--------------------------- 파일에서 연속적으로 반복되는 행을보고하거나 무시하는 데 사용되며 종종 sort 명령과 함께 사용됩니다. -------------------------

구문 형식 :

uniq [选项] 参数

cat file | uniq 选项

일반적인 옵션 :

-c:统计连续重复的数的次数并删除文件中重复出现的行,仅显示一行

-d:仅显示连续的重复行

-u:仅显示出现一次的行
uniq testfile3

sort -n testfile3 | uniq -c

여기에 사진 설명 삽입

여기에 사진 설명 삽입
여기에 사진 설명 삽입
여기에 사진 설명 삽입

셋, tr 명령

--------------------------------- 일반적으로 표준 입력에서 문자를 교체, 압축 및 삭제하는 데 사용됩니다 .--- --------------------------------

구문 형식 :

tr [选项] [参数,不能是文件]

일반적인 옵션 :

-c:保留字符集1的字符,其他的字符(包括换行符\n)用字符集2替换

-d:删除所有属于字符集1的字符

-s:将重复出现的字符串压缩为一个字符串;用字符集2替换字符集1

-t:字符集2替换字符集1,不加选项同结果。

매개 변수 :

문자 세트 1 : 변환 또는 삭제할 원래 문자 세트를 지정합니다. 변환 작업을 수행 할 때 "문자 세트 2"매개 변수를 사용하여 변환 할 대상 문자 세트를 지정해야합니다. 그러나 삭제 작업을 수행 할 때 매개 변수 "문자 세트 2"는 필요하지 않습니다.

문자 집합 2 : 변환 할 대상 문자 집합을 지정합니다.

echo "abc" | tr 'a-z' 'A-Z‘

echo -e "abc\ncabcdab" | tr -c "ab\n" "0"

echo -e "abc\ncabcdab" I tr -c "ab" "0"

echo 'hello world' | tr -d 'od'

echo "thissss is a text linnnnnnne." | tr -s 'sn'

여기에 사진 설명 삽입
여기에 사진 설명 삽입
여기에 사진 설명 삽입

빈 줄 삭제

echo -e "aa\n\n\n\n\nbb" | tr -s "\n"

cat testfile4 | tr -s "\n"

여기에 사진 설명 삽입

경로 변수의 콜론 ":"을 개행 문자 "\ n"으로 바꿉니다.

echo $PATH | tr -s ":" "\n"

echo -e "aa\n\n\n\n\nbb" | tr -s "\n" ":"

여기에 사진 설명 삽입
여기에 사진 설명 삽입

Windows 파일을 삭제하면 " '^ M'문자가 발생합니다.

cat file | tr -s "\r" "\n" > new_file

或

cat file | tr -d "\r" > new file
Linux中遇到换行符("\n")会进行回车+换行的操作,回车符反而只会作为控制字符('^M')显示,不发生回车的操作。
而windows中要回车符+换行符("\r\n")才会回车+换行,缺少一个控制符或者顺序不对都不能正确的另起一行。
(Linux的'^M'相当于Windows的\r,属于不兼容的问题)

넷째, 배열 정렬

echo ${array[*]} | tr ' ' '\n' | sort -n > newfile

a=0
for i in $(cat file)

do

array[$a]
let a++
或
arrary+=($i)

done

다섯, 정규 표현식

--------------------------- 일반적으로 문자열이 특정 형식을 충족하는지 여부를 확인하기 위해 판단 문에서 사용됩니다. ---- ----- ----------------------

정규식은 일반적인 문자메타 문자 구성입니다.

메타 문자는 정규 표현식에서 특별한 의미를 갖는 특수 문자를 의미합니다. 대상 객체에서 선행 문자 (메타 문자 앞의 문자)의 모양 모드를 지정하는 데 사용할 수 있습니다.

기본 정규식 의 일반적인 메타 문자 : (지원 도구 : grep, egrep, sed, awk)

\:转义字符,用于取消特殊字符的含义,例:\!、\n、\$等



^:匹配字符串开始的位置,例:^a、^the、^#、^[a-z]

$:匹配字符串结束的位置,例:word$、^$匹配空行



.:匹配除\n之外的任意一个字符,例:go.d、g..d

*:匹配前面子表达式0次或多次,例:goo*d、go.*d



[list]:匹配list列表中的一个字符,例:go[oal]d,[abc][a-z][a-z0-9][0-9]匹配任意一个字符

[^list]:匹配任意非list列表中的一个字符,例:[^0-9][^0-9A-Z][^a-z]



\{
    
    n\}:匹配前面的子表达式n次,例:go\{
    
    2\}d、'[0-9]\{2|}'匹配两位数字

\{
    
    n,\}:匹配前面的子表达式不少于n次,例:go\{
    
    2,\}d、'[0-9]\{2\}'匹配两位即两位以上数字

\{
    
    n,m\}:匹配前面的子表达式n到m次,例:go\{
    
    2,3}d、'[0-9]\{2,3\}'匹配两到三位数字

注:egrep、awk使用(n)、(n,)、(n,m)匹配时“{
    
    }”前不用加“\”

확장 된 정규식 메타 문자 : (지원되는 도구 : egrep, awk)

+:匹配前面子表达式1次以上,例:go+d,将匹配至少一个o,如god、good、goood等

?:匹配前面子表达式0次或者1次,例:go?d,将匹配到gd或god

():将括号中的字符串作为一个整体,例:g(oo)+d,将匹配oo整体1次以上,如good、gooood等

|:以或得方式匹配字符串,例:g(oo|la)d,将匹配good或者glad

추천

출처blog.csdn.net/IvyXYW/article/details/111632274