.txt 파일의 각 줄에 텍스트를 추가하려고 합니다.
앞에 추가하고 싶은 내용은 다음과 같습니다.I am a
다음을 추가하고 싶습니다.
128... [}
각 라인에.
a.txt 내부:
fruit, like
bike, like
dino, like
다음 명령을 실행한 후:
$ cat a.txt|sed 'I am a ',' 128... [}'
내가 원하는 대로 작동하지 않습니다. 나는 그것이 다음과 같이 말하기를 정말로 바랍니다:
I am a fruit, like 128... [}
I am a bike, like 128... [}
I am a dino, like 128... [}
답변1
단순한sed
방법:
sed 's/^/I am a /; s/$/ 128... [}/' file.txt
^
- 대표하다문자열/줄의 시작$
- 대표하다문자열/줄의 끝
산출:
I am a fruit, like 128... [}
I am a bike, like 128... [}
I am a dino, like 128... [}
아니면Awk
다음을 수행할 수 있습니다.
awk '{ print "I am a", $0, "128... [}" }' file.txt
답변2
sed 's/.*/PREFIX&SUFFIX/' infile
특수 문자가 포함 PREFIX
되어 있지 않다고 가정합니다 .SUFFIX
\&/
(백슬래시, 앰퍼샌드 및 구분 기호)는 대체 항목의 오른쪽에 있을 때 특별합니다 s
. 이러한 문자의 특별한 의미는 문자를 이스케이프하여(앞에 백슬래시를 추가하여) 억제할 수 있습니다. 예를 들어 실행 전후에 하나를 A//BC
추가하면 다음과 같습니다.XY\Z&&
sed 's/.*/A\/\/BC&XY\\Z\&\&/' infile
답변3
진주:
$ perl -lne 'print "I am a $_ 128... [}"' file
I am a fruit, like 128... [}
I am a bike, like 128... [}
I am a dino, like 128... [}
더 많은 펄:
$ perl -pe 's/^/I am a /; s/$/ 128... [}/' file
I am a fruit, like 128... [}
I am a bike, like 128... [}
I am a dino, like 128... [}
그리고 더 많은 Perl 콘텐츠:
$ perl -lpe '$_="I am a $_ 128... [}"' file
I am a fruit, like 128... [}
I am a bike, like 128... [}
I am a dino, like 128... [}
이들 모두에 대해 다음 -i
을 사용하여 원본 파일을 변경할 수 있습니다.
$ perl -i -lne 'print "I am a $_ 128... [}"' file
$ perl -i -pe 's/^/I am a /; s/$/ 128... [}/' file
$ perl -i -lpe '$_="I am a $_ 128... [}"' file
답변4
sed의 대안
sed -e 's/^\(.*\)$/I am a \1 128 [{/
.*
줄의 시작과 끝 ^
사이의 모든 내용을 검색하여 $
그룹에 넣습니다 \( \)
. 그런 다음 접두사, (첫 번째) 그룹 \1
및 접미사 로 바꿉니다 .