D-T*_*D-T 5 command-line text-processing
如何在 csv 文件中截断 1000 行后?目标是仅保留文件中的前 1000 行并删除所有其他行。
pLu*_*umo 13
您可以使用head -n <n>
打印第一n
行:
head -n 1000 "file.csv"
Run Code Online (Sandbox Code Playgroud)
要写入文件,请使用重定向:
head -n 1000 "file.csv" > "some_other_file.csv"
Run Code Online (Sandbox Code Playgroud)
要覆盖同一个文件,需要先写入临时文件,然后覆盖原始文件...
head -n 1000 "file.csv" > "file.csv.tmp" && mv "file.csv.tmp" "file.csv"
# or more safe use mktemp
tmpfile=$(mktemp)
head -n 1000 "file.csv" > "$tmpfile" && mv "$tmpfile" "file.csv"
Run Code Online (Sandbox Code Playgroud)
...或使用( -->sponge
的一部分)moreutils
sudo apt install moreutils
head -n 1000 "file.csv" | sponge "file.csv"
Run Code Online (Sandbox Code Playgroud)
sed
使用 GNU 版本的和就地编辑文件的其他(不可移植)选项awk
:
sed -i 1000q "file.csv"
# or
sed -n -i '1,1000p' "file.csv"
# or
sed -i '1001,$d' "file.csv"
# or
awk -i inplace 'NR>1000{exit}1' "file.csv"
Run Code Online (Sandbox Code Playgroud)
在终端运行:
head -n 1000 /path/to/file.csv
Run Code Online (Sandbox Code Playgroud)
要将结果保存在单独的文件中,请运行:
head -n 1000 /path/to/file.csv > /path/to/new_file_with_first_1000_linces.csv
Run Code Online (Sandbox Code Playgroud)