Bash 초보자는 몇 가지 간단한 작업을 수행하여 무언가를 마스터하려고 합니다. 다음 텍스트가 포함된 텍스트 파일이 있다고 가정해 보겠습니다.
ExperimentOne results = .5 participants: 80
ExperimentTwo results = .4 participants: 75, 4 unclear reports
ExperimentOne 및 ExperimentTwo 결과 데이터 또는 행에 결과라는 단어가 포함된 모든 데이터를 추출하여 출력을 간단하게 만들고 싶습니다.
ExperimentOne .5
ExperimentTwo .4
어떻게 해야 하나요?
답변1
다음을 사용해 보세요 awk
:
awk '/results/ {print $1,$4}'
또는
awk '$2=="results"{print $1,$4}'
답변2
사용하려면 cut
다음 옵션을 사용하여 구분 기호를 설정해야 합니다 -d
.
$ cut -d' ' -f1,4 file
ExperimentOne .5
ExperimentTwo .4
답변3
또 다른 해결책 sed
:
sed -En 's/results *= *([^ ]+).*$/\1/p' filename.txt
grep
+ 파이프를 사용하려는 경우 cut
이를 지정하지 않으면 cut
필드 구분 기호가 가정된다는 점을 기억해야 합니다. TAB
그래서, 사용
grep "results" filename.txt | cut -d' ' -f1,4