문자열에서 특정 문자 제거

문자열에서 특정 문자 제거

공백을 쉼표로 바꾼 다음 문자열에서 추가 특정 문자를 제거해야 합니다.

echo "$d"
>>Mon Apr 22 05:06:00 UTC 2019
jent=$(echo $jt1 | sed 's/[[:space:]]/,/g')
echo "$jent"
>>Mon,Apr,22,05:06:00,UTC,2019 #this does the first job of replacing the space with comma

하지만 UTC 부분과 앞의 쉼표도 제거하고 싶습니다. 어떻게 해야 합니까?

원하는 출력은 다음과 같아야 합니다.

Mon,Apr,22,05:06:00,2019

답변1

다음과 같이 단일 sed 호출로 이 작업을 수행할 수 있습니다.

$ echo "Mon Apr 22 05:06:00 UTC 2019" | sed 's/ \(UTC \)\?/,/g'
Mon,Apr,22,05:06:00,2019

답변2

날짜에는 표준 출력과 고정된 수의 열이 있으므로 awk를 사용하여 원하는 데이터를 인쇄할 수 있습니다.

[user@server1 ~]$ echo "Mon Apr 22 05:06:00 UTC 2019" | awk '{print $1","$2","$3","$4","$6}'
Mon,Apr,22,05:06:00,2019

답변3

간단히 다음과 같이 말할 수 있습니다.

~]$ export jent="$(echo $jent | sed 's/,UTC//g')"
~]$ echo $jent
Mon,Apr,22,05:06:00,2019

답변4

awk와 sed를 사용하여 다음과 같은 방법으로 수행했습니다.

주문하다:

echo "Mon Apr 22 05:06:00 UTC 2019"|awk '{$(NF-1)="";print $0}'| sed -r "s/\s+/ /g"| sed "s/ /,/g"

산출:

Mon,Apr,22,05:06:00,2019

관련 정보