我得到的是这样的:
working_dir
|-- samples
|-- table1.tbl
|-- table2.tbl
|-- table3.tbl
Run Code Online (Sandbox Code Playgroud)
我想拥有的是这样的:
working_dir
|-- samples
| |-- table1.tbl
| |-- table2.tbl
| |-- table3.tbl
|-- table1.tbl
|-- table2.tbl
|-- table3.tbl
Run Code Online (Sandbox Code Playgroud)
samples目录中的.tbl文件将包含根目录中这些.tbl文件的前10行.
我试过了
for FILE in `ls *.tbl`; do
NEWFILE="samples/$FILE"
if [ ! -f "$NEWFILE" ] ; then
touch "$NEWFILE"
fi
echo `head $FILE` > $NEWFILE
done
Run Code Online (Sandbox Code Playgroud)
但是.tbl文件中的换行符samples丢失了,10行的内容被压缩到每个.tbl文件中的一行.
有帮助吗?谢谢.
for FILE in *.tbl; do
head "$FILE" > "samples/$FILE"
done
Run Code Online (Sandbox Code Playgroud)
你的问题是由回声和反引号引起的.反引号将输出展平为一行,echo只输出该单行.