다음 내용이 포함된 파일이 있습니다.
abc=123|qwer=432|reiw=2344|xyz=123 445|tyu=23 rows
사용해봤는데 사용해야 tr
겠어요sed
awk
원하는 출력은 다음과 같아야 합니다.
file2:
123|432|2344|123 445|23 rows
답변1
perl -F'=|\|' -pe '$_ = join "|", grep { $k++ % 2 } @F'
sed -e 's/[^=|]*=//g'
답변2
방금 이것을 시도했습니다 sed
:
sed 's/[a-z,=]//g' | sed 's/$/rows/'
즉, "="뿐만 아니라 "a"와 "z" 사이의 모든 문자를 제거합니다. 그 후 끝에 "line"을 추가합니다.
이것은 예제 라인으로만 테스트되었습니다. 파일에 다른 변형이 있는 경우 작동하지 않을 수 있습니다.
awk
"="와 "|" 사이의 모든 값을 얻는 또 다른 방법은 다음과 같습니다.
awk '$0=$2' FS=\= RS='|' ORS="|" | head -1
head
예상 출력 다음 두 번째 줄에 마지막 "|" 문자가 인쇄되었기 때문에 파이프를 실행해야 했습니다 .