0
번호가 1-19로 시작하는 줄에서만 마지막 숫자 필드를 조건부로 제거해야하는 큰 파일이 있습니다. 조건을 만족하지 않는 행을 포함하여 한 줄씩 전체 파일을 인쇄하고 싶습니다. grep을하고 나오지 라인이 개별적으로 작동하지만,숫자 문자열에서 마지막 필드를 조건부로 제거합니다.
cat > test.txt
118222
1 0.5632 0.10 0.05 1.00 0.45 5.00 0.50 0
0.54 0.49 0.58 0.74 1.08 1.75 1.97 1.86 1.51 1.03 0.76 0.52
0.22 0.20 0.21 0.25 0.37 0.58 0.61 0.64 0.55 0.45 0.39 0.23
0.17 0.20 0.18 0.14 0.10 0.10 0.10 0.10 0.09 0.09 0.11 0.12
5 0.0172 0.10 0.05 1.00 0.45 5.00 0.50 1
0.35 0.32 0.39 0.71 1.15 1.87 1.96 1.72 1.36 0.91 0.70 0.43
0.31 0.30 0.29 0.27 0.36 0.57 0.57 0.57 0.46 0.35 0.34 0.31
0.28 0.29 0.26 0.16 0.11 0.11 0.12 0.11 0.11 0.10 0.14 0.26
#!/bin/bash
FILE=test.text
while read i; do
echo ${i} | grep -E '^([1-9]|1[0-9])' && sed 's/.$//' || echo ${i}
done < $FILE
이 작동하지 않습니다
여기 내 코드입니다.
모든 도움을 주시면 대단히 감사하겠습니다.
예. 이것은 완전히 작동합니다. 숫자 문자를 제거하고 싶었 기 때문에 두 번째 문자를 사용했습니다. 내 제목에 선명도가 부족해서 죄송합니다. 정말 sed 튜토리얼에 더 많은 시간을 할애해야합니다. 고맙습니다! – user3367135