In bash
, how can I print the first n
elements of a list?
For example, the first 10 files in this list:
FILES=$(ls)
FILES=(*)
echo "${FILES[@]:0:10}"
Should work correctly even if there are spaces in filenames.
FILES=$(ls)
creates a string variable. FILES=(*)
creates an array. See this page for more examples on using arrays in bash. (thanks lhunath)
echo $FILES | awk '{for (i = 1; i <= 10; i++) {print $i}}'
Edit: AAh, missed your comment that you needed them on one line...
echo $FILES | awk '{for (i = 1; i <= 10; i++) {printf "%s ", $i}}'
That one does that.