반응형
Bash에서 파일의 각 줄
bash를 사용하여 파일의 각 줄 어디에서 어떻게 추가 할 수 있습니까? sed 명령을 사용하여 수행 할 수 있습니까? 어떻게해야해야합니까?
변수 매개 sed
를 통한 내부 편집을 허용하는 경우 -i
:
sed -e 's/$/string after each line/' -i filename
그렇지 않은 경우 임시 파일을 지정합니다.
typeset TMP_FILE=$( mktemp )
touch "${TMP_FILE}"
cp -p filename "${TMP_FILE}"
sed -e 's/$/string after each line/' "${TMP_FILE}" > filename
나는 awk
. 열이 하나만있는 경우를 사용 $0
하고 있고 마지막 열로 바꿉니다.
일방 통행,
awk '{print $0, "string to append after each line"}' file > new_file
아니면 이거,
awk '$0=$0"string to append after each line"' file > new_file
가지고있는 권한 lam (laminate) 유틸리티가이를 수행 할 수 있습니다. 예를 들면 다음과 같습니다.
$ lam filename -s "string after each line"
순수 POSIX 쉘 및 :
sponge
suffix=foobar while read l ; do printf '%s\n' "$l" "${suffix}" ; done < file | sponge file
xargs
및printf
:suffix=foobar xargs -L 1 printf "%s${suffix}\n" < file | sponge file
사용
join
:suffix=foobar join file file -e "${suffix}" -o 1.1,2.99999 | sponge file
쉘 도구를 사용하여
paste
,yes
,head
및wc
:suffix=foobar paste file <(yes "${suffix}" | head -$(wc -l < file) ) | sponge file
앞에 탭 문자 를
paste
삽입합니다 .$suffix
물론 다른 답변과 마찬가지로 sponge
나중에 mv
원래 파일 이름 위에 임시 파일로 바꿀 수 있습니다 ...
Sed는 약간 못 생겼습니다. 이렇게 우아하게 할 수 있습니다.
hendry@i7 tmp$ cat foo
bar
candy
car
hendry@i7 tmp$ for i in `cat foo`; do echo ${i}bar; done
barbar
candybar
carbar
참고 URL : https://stackoverflow.com/questions/2869669/in-bash-how-do-i-add-a-string-after-each-line-in-a-file
반응형
'IT' 카테고리의 다른 글
Unix에서 tar 명령의 출력을 끄려면 어떻게해야합니까? (0) | 2020.08.16 |
---|---|
C ++ : 빈 클래스의 개체 크기는 얼마입니까? (0) | 2020.08.16 |
VS2010 프로젝트에 대한 외부 액세스를 위해 IIS Express 구성 (0) | 2020.08.16 |
_gaq.push ([ '_ trackPageLoadTime'])는 어떻게 작동합니까? (0) | 2020.08.16 |
UITextField 편집을 계속하지만 여전히 터치를 허용하는 방법은 무엇입니까? (0) | 2020.08.16 |