Как упомянул Рованион, чтобы перечислить все диски за один раз:
hddtemp /dev/sd?
Или, если вы предпочитаете цикл for:
for i in /dev/sd[a-z]; do hddtemp "$i"; done
Маленький и простой однострочник Perl:
$ perl -ane 'printf "%s",@F[0];@F[0]="";print @F' <<< "2015-04-18 10:21:59 10 05430 -9999 -9999 000000000000"
2015-04-1810:21:591005430-9999-9999000000000000
Или даже проще, как предлагает mik в комментариях:
perl -pe 's/ //' <<< "2015-04-18 10:21:59 10 05430 -9999 -9999 000000000000"
Python тоже может это делать. Вот небольшой сценарий, который выполняет свою работу. При необходимости его можно свести к однострочному:
#!/usr/bin/env python
from __future__ import print_function
import sys
for line in sys.stdin:
words=line.strip().split()
print(words[0],end="")
print(" ".join(words[1:]))
И с той же строкой во входном файле, дублированной 3 раза, вот тест для многострочного ввода:
$ ./remove_leading_space.py < input.txt
2015-04-1810:21:59 10 05430 -9999 -9999 000000000000
2015-04-1810:21:59 10 05430 -9999 -9999 000000000000
2015-04-1810:21:59 10 05430 -9999 -9999 000000000000
Если вы отредактировали только одну единственную строку, вы можете сделайте это так:
$ ./remove_leading_space.py <<< "2015-04-18 10:21:59 10 05430 -9999 -9999 000000000000"
Это довольно простой вопрос.
sed -i 's / //' / path / to / file
Попробуйте эту команду и не добавляйте s в конец выражения sed.
Он просто удалит первый пробел в каждой строке.
Использование awk
:
> awk '{print $1$2,$3,$4,$5,$6,$7}' yourfile > outputfile
Вывод:
> cat outputfile
2015-04-1810:21:59 10 05430 -9999 -9999 000000000000
Вы можете удалить любое пространство в строке и оставить любое
Предполагая : входной файл должен содержать:
Если какое-либо из этих предположений нарушается, результат будет неверным
Вы можете использовать sed
для этого:
sed 's/ //' infile >outfile
Это применяет замену ко всем строкам файла infile
, который заменит первый пробел ничем (т.е. удалит его). Вывод сохраняется в файле outfile
. С помощью sed 's / // N'
, где N
- целое число от 1 до 9, вы можете выбрать, какое пространство удалить.
Если строка находится в переменной оболочки, вы можете использовать
var="${var/ /}"
Здесь используется расширение параметра $ {параметр / шаблон / строка}
в bash
, чтобы сделать то же самое. как команду sed
, но со значением в $ var
. Результирующая строка в этом примере затем сохраняется обратно в $ var
.
Вы можете использовать Vim в режиме Ex:
ex -sc '%s/ //|x' file
%
выбрать все строки
s
заменить
x
сохранить и закрыть