아래 예제와 함께 자습서로 바쁜 일괄 처리 스크립트 작성시 새로운 내용입니다. 한 줄 또는 두 줄을 배울 수있는 배치 스크립트를 작성하는 데 정말로 도움이 필요합니다. 텍스트 줄을 삽입하려면 도움이 필요합니다. 기존 텍스트 파일의 중간에.기존 텍스트 파일을 조작하는 일괄 처리 스크립트
a
bcd
efg
hjiklmnop
=== === ===
q
rs
t
uvwxyz
아래 예제와 함께 자습서로 바쁜 일괄 처리 스크립트 작성시 새로운 내용입니다. 한 줄 또는 두 줄을 배울 수있는 배치 스크립트를 작성하는 데 정말로 도움이 필요합니다. 텍스트 줄을 삽입하려면 도움이 필요합니다. 기존 텍스트 파일의 중간에.기존 텍스트 파일을 조작하는 일괄 처리 스크립트
a
bcd
efg
hjiklmnop
=== === ===
q
rs
t
uvwxyz
이 sed
를 사용하여 라인의 짝수 가정 :
a
bcd
efg
hjiklmnop
q
rs
t
uvwxyz
다음은 명령 ./put-in-middle.sh "=== === ===" myfile.txt
가 파일을 수정해야합니다 내용으로 myfile.txt 파일 주어진 예를 들어
:
sed $(($(wc input -l | cut -d' ' -f1)/2))'a=== === ===' input
그리고이 i s의 스크립트 버전 put-in-middle.sh
:
line=$1
file=$2
sed $(($(wc $file -l | cut -d' ' -f1)/2))"a$line" $file
@echo off
rem Count the number of lines in the file with FIND
for /F %%a in ('find /C /V "" ^< %2') do set numLines=%%a
rem Get the number of middle line
set /A middle=numLines/2
rem Process all lines, use FINDSTR /N to insert line numbers
for /F "tokens=1* delims=:" %%a in ('findstr /N "^" %2') do (
rem Echo the original line
echo/%%b
rem If the line is the middle one...
if %%a equ %middle% (
rem Insert the new line
echo %~1
)
)
가 put-in-middle.bat
으로 이전 배치 파일을 생성하고이 방법을 실행합니다
put-in-middle "=== === ===" myfile.txt
주 :
echo/%%b
명령의 슬래시가 삽입됩니다. 줄에 "/?"문자열이 포함되어 있으면이 경우에는 에코 도움말이 표시되지 않도록 명령을 echo(%%b
으로 변경해야합니다 (왼쪽 괄호 만 해당 문자입니다).< > | &)
과 같은 일괄 특수 문자가 들어 있으면 echo/%%b
명령이 실패합니다. 이 경우 파일 행의 특수 처리가 추가되어야합니다. 새 삽입 된 선에 동일한 점이 적용됩니다..
(for /F "tokens=1* delims=:" %%a in ('findstr /N "^" %2') do (
. . .
)) > auxiliar.txt
move /Y auxiliar.txt %2