12개의 행과 3개의 열로 구성된 텍스트 파일이 여러 개 있습니다.
예:
2 6 0.74
42 6 0.58
80 6 0
112 6 0.24
132 6 1
216 6 0.7
342 6 0
390 6 0.21
432 6 0.56
466 6 0.75
524 6 0.6
646 6 0.9
모든 행의 세 번째 열의 모든 값을 1로 설정하고 싶습니다.
출력은 다음과 같아야 합니다.
2 6 1
42 6 1
80 6 1
112 6 1
132 6 1
216 6 1
342 6 1
390 6 1
432 6 1
466 6 1
524 6 1
646 6 1
이 문제를 해결할 수 있는 명령어를 아는 사람이 있나요?
답변1
awk '{print $1, $2, "1"}' inputfile
답변2
노력하다
앗
awk '{$3=1 ; print ;}' oldfile > newfile
$3 = 1
세 번째 필드를 1로 설정
sed(여기서는 내부 편집 옵션이 sed
있는 GNU 또는 busybox )-i
sed -i 's/[0-9.]*$/1/' file
[0-9.]*$
0
줄의 끝까지9
의 순서입니다 ..
sed (골프 4바이트)
sed -i 's/[^ ]*$/1/' file
[^ ]*$
줄 끝까지 공백을 제외한 모든 문자.
답변3
예상 출력의 줄은 두 개의 공백 문자로 끝나는 것으로 나타나고 필드는 탭 문자와 공백 문자로 구분됩니다.
이것이 실제로 원하는 것이라면 다음을 수행해야 합니다.
awk -v 'OFS=\t ' '$3="1 "' < infile > outfile
또는 다음을 사용하여 sed
:
tab=$(printf '\t')
sed "
s/[[:blank:]]\{1,\}/$tab /g
s/[^[:blank:]]\{1,\}[[:blank:]]*$/1 /
s/^[[:blank:]]*//" < infile > outfile
답변4
이렇게 하면 작업이 수행됩니다.
cat textfiles | cut -d' ' -f-2 | sed 's/$/ 1/'