두 개의 문자열 열을 연결하고 그 사이에 _를 삽입하려면 어떻게 해야 합니까?
파일이 있습니다:
L o 45
OK kklkj 5
원하는 결과는 다음과 같습니다.
L_o 45
OK_kklkj 5
나는 시도했다:
awk '{printf "%12s %22.2f\n", $1+'_'+$2, $3}' file
문자열을 숫자로 변환합니다. 감사해요.
답변1
사용 sed
:
sed 's/[[:blank:]]\{1,\}/_/' file
이는 하나 이상의 연속 공백(공백 또는 탭)이 처음 나타나는 것을 단일 밑줄 문자로 바꿉니다.
GNU를 사용하면 sed
다음과 같이 단축할 수 있습니다.
gsed -E 's/\s+/_/' file
이는 지정된 데이터에 대해 위와 동일하지만 처음 두 필드 사이에 해당 문자가 있는 경우 더 큰 공백 유사 문자 세트와 일치합니다( \s
PCRE 표기법은 유사하게 일치하며 [[:space:]]
수직 탭 문자, 캐리지 리턴 문자도 포함). 캐리지 리턴 문자 및 폼 피드 문자).
질문의 데이터가 주어지면 다음과 같은 출력이 생성됩니다.
L_o 45
OK_kklkj 5
답변2
사용awk
$ awk '{$0=$1"_"$2FS$NF}1' input_file | column -t
L_o 45
OK_kklkj 5