반응형
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 쉘 및 :
spongesuffix=foobar while read l ; do printf '%s\n' "$l" "${suffix}" ; done < file | sponge filexargs및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 |