file1.csv
in의 제목을 in의 제목으로 바꾸고 싶습니다 .file2.csv
file1.csv
"a","b","c"
file2.csv
"x","y","z"
내가 원하는 제목 file1.csv
은
"x","y","z"
무엇을 해야할지 알려주세요. 나는 노력했다
sed -i "1 s/^.*$/$file2.csv/" file1.csv
""
하지만 (따옴표) 는 포함되지 않습니다 . 제목에 따옴표를 붙이고 싶습니다.
답변1
이 작업을 고집하는 경우 sed
:
( sed 1q file2.csv; sed 1d file1.csv ) >file3.csv && mv file3.csv file1.csv
아니요 sed
:
( head -1 file2.csv; tail -n +2 file1.csv ) >file3.csv && mv file3.csv file1.csv
답변2
gnu sed
를 사용하여 ( R
지정된 파일에서 한 줄 읽기):
sed -i -e '1{R SOURCE' -e 'd}' DESTINATION
또는 를 사용하여 첫 번째 줄 뒤의 헤더를 ed
열고 DESTINATION
읽은 다음 첫 번째 줄을 삭제합니다.SOURCE
ed -s DESTINATION <<\IN
1r ! head -n1 SOURCE
1d
w
q
IN
답변3
file2.csv
한 줄만 포함된 경우
sed -i "1 s/.*/$(< file2.csv)/" file1.csv
file2.csv
여러 줄이 포함된 경우
sed -i "1 s/.*/$(sed '1q' file2.csv)/" file1.csv
또는
sed -i "1 s/.*/$(head -1 file2.csv)/" file1.csv
노트:
file2.csv
다음 행에 구분 기호가 포함되어 있으면 /
비슷한 오류가 발생합니다 unknown option to `s'
. |
이 경우 다른 구분 기호를 사용하십시오.