아래와 같은 파일이 있습니다.
line1
line2
line3
그리고 나는 얻고 싶다 :
prefixline1
prefixline2
prefixline3
루비 스크립트를 작성할 수는 있지만 필요하지 않은 것이 좋습니다.
prefix
포함합니다 /
. /opt/workdir/
예를 들어 경로 입니다.
답변
# If you want to edit the file in-place
sed -i -e 's/^/prefix/' file
# If you want to create a new file
sed -e 's/^/prefix/' file > file.new
경우 prefix
포함 /
, 당신은하지의 다른 문자를 사용할 수 있습니다 prefix
, 또는 탈출 /
소위, sed
명령이된다
's#^#/opt/workdir#'
# or
's/^/\/opt\/workdir/'
답변
awk '$0="prefix"$0' file > new_file
Perl (교체) :
perl -pi 's/^/prefix/' file
답변
Ex 모드에서 Vim을 사용할 수 있습니다 :
ex -sc '%s/^/prefix/|x' file
-
%
모든 줄을 선택하십시오 -
s
바꾸다 -
x
저장하고 닫습니다
답변
접두사가 조금 복잡하면 변수에 넣으십시오.
prefix=path/to/file/
그런 다음 해당 변수를 전달하고 awk가 처리하도록하십시오.
awk -v prefix="$prefix" '{print prefix $0}' input_file.txt
답변
Perl이있는 경우 :
perl -pe 's/^/PREFIX/' input.file
답변
쉘 사용하기 :
#!/bin/bash
prefix="something"
file="file"
while read -r line
do
echo "${prefix}$line"
done <$file > newfile
mv newfile $file
답변
다음은 moreutils의 ts
명령을 사용하여 읽기 쉬운 oneliner 솔루션입니다.
$ cat file | ts prefix | tr -d ' '
그리고 그것이 단계별로 파생되는 방법 :
# Step 0. create the file
$ cat file
line1
line2
line3
# Step 1. add prefix to the beginning of each line
$ cat file | ts prefix
prefix line1
prefix line2
prefix line3
# Step 2. remove spaces in the middle
$ cat file | ts prefix | tr -d ' '
prefixline1
prefixline2
prefixline3