나한테는 그 대사가 있어
Siouxsie Sioux Siouxsie Sioux ...
Sylvia Tobias Sylvia Tobias ...
Sydney Urshan Sydney Urshan ...
Club Drummer (uncredited) Club Drummer (uncredited) ...
awk를 사용하여 분리된 탭의 첫 번째 열을 인쇄한 다음,
awk -F "\t" '{print $1","}'
문제는 없지만 끝에 공백이 있어서 sed를 사용합니다.
awk -F "\t" '{print $1","}'|sed -r 's/(^[^[:blank:]]+[[:blank:]]+[^[:blank:]]+)[[:blank:]]+/\1/'
이렇게 하면 트릭이 수행되지만 두 번째 공백도 제거되므로
Club Drummer (uncredited) ,
~이 되다
Club Drummer(uncredited),
제 생각에는
Club Drummer (uncredited),
그렇다면 마지막 공백만 제거하려면 어떻게 해야 합니까? 감사해요
답변1
awk -F ' *\t' '{print $1 ","}'
또는:
sed $'s/ *\t.*/,/'
답변2
awk
자체를 사용하여 후행 공백을 제거합니다.
awk -F'\t' '{sub(/[[:blank:]]+$/, "", $1);print $1","}' file
답변3
printf
대신 을 사용하여 print
이 문제를 해결할 수 있습니다 .
$ awk '{for (i=1;i<NF;i++)printf("%s ", $i);printf("\b%s\n",",")}' file.txt
Siouxsie Sioux Siouxsie Sioux,
Sylvia Tobias Sylvia Tobias,
Sydney Urshan Sydney Urshan,
Club Drummer (uncredited) Club Drummer (uncredited),
아니면 필요하다면sed
$ sed -re 's/ +\.\.+/,/g' file.txt
Siouxsie Sioux Siouxsie Sioux,
Sylvia Tobias Sylvia Tobias,
Sydney Urshan Sydney Urshan,
Club Drummer (uncredited) Club Drummer (uncredited),
답변4
나는 전체 작업을 다음을 사용하여 sed 's/^\([^\t]*\).*/\1,/'
수행 할 수 있다고 생각합니다.